Hey Terry, I do indeed have one! https://github.com/rayvoelker/js-loc-callnumbers I probably should add some better documentation for this thing, but if you include that source, you should be able to do things like this ... //instantiate the call number class var loc = new locCallClass(); // unsorted list of call numbers var range_data = ["HB 74 .M3 A4 1963", "H 1 .E77", "HB 74 .M3 A38"]; //sort the range range_data.sort(function (a,b) { return loc.localeCompare(a,b); }); // If you're looking to store the "normalized" versions of the call numbers (they're not very pretty to look at) in a spreadsheet, you could use the method "returnNormLcCall()" ... loc.returnNormLcCall('DA86 .R52'); "DA0000000.000000086.000000000.R00000000.520000000.000000000.000000000.000000000" loc.returnNormLcCall('DA506.A2 A4'); "DA0000000.000000506.000000000.A00000000.200000000.A00000000.400000000.000000000" Let me know if you have any questions about it! --Ray On Fri, Oct 7, 2016 at 2:16 PM, Terry Brady <[log in to unmask]> wrote: > I need a JavaScript function that can normalize an LC Call Number for > sorting. > > I did a quick search of the list, and I saw some Perl and Python examples. > Before I attempt to port one of those versions to JavaScript, are you aware > of any JavaScript versions that already exist? > > Thanks, Terry > > -- > Terry Brady > Applications Programmer Analyst > Georgetown University Library Information Technology > http://georgetown-university-libraries.github.io/ > <https://www.library.georgetown.edu/lit/code> > 425-298-5498 (Seattle, WA) > -- Ray Voelker (937) 229-1407 Roesch Library University of Dayton 300 College Park Dayton OH, 45469-1360