Untitled

 avatar
unknown
plain_text
2 years ago
712 B
6
Indexable
ValidateDigit(control: AbstractControl) {

let pattern = new RegExp(/[A-Za-z]/);

let cusip = control. value ? control.value.split(""): [];

let alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ*@#";

if (cusip.length > 0 && cusip.length == 9) {

let sum = 0;

for (let i = 0; i < 8; i++) {

let v = 0;

let c = cusip[i].toUpperCase();

if ((!isNaN(parseFloat(c)) && isFinite(c))) v = c;

else if (pattern.test(c)) v = alphabet.indexOf(c) + 10 // lower case letters apparently inv if ((i % 2) != 0) v = 2 // check if odd as using 0-based indexing v = (v % 10) + (v / 10);

sum += parseInt(v.toString());

白

}

if (parseInt(cusip[8]) != (10 - (sum %10)) % 10) { return { validUrl: true }

}

return null;

}

return null;
Editor is loading...
Leave a Comment