--- title: CUSIP --- # CUSIP --- ## Solutions
Solution 1 (Click to Show/Hide) ```javascript function isCusip(s) { if (s.length != 9) return false; var sum = 0; var ASCII = x => x.charCodeAt(0); for (var i = 0; i < 7; i++) { var c = s.charCodeAt(i); var v; if (c >= ASCII('0') && c <= ASCII('9')) { v = c - 48; } else if (c >= ASCII('A') && c <= ASCII('Z')) { v = c - 64; // lower case letters apparently invalid } else if (c == ASCII('*')) { v = 36; } else if (c == ASCII('@')) { v = 37; } else if (c == ASCII('#')) { v = 38; } else { return false; } if (i % 2 == 1) v *= 2; // check if odd as using 0-based indexing sum += Math.floor(v / 10) + v % 10; } return s.charCodeAt(8) - 48 == (10 - (sum % 10)) % 10; } ```