UNPKG

@stacksjs/ts-validation

Version:

A simple TypeScript starter kit using Bun.

43 lines (36 loc) 800 B
export default function isIMEI(str: string, options: IsIMEIOptions): boolean { assertString(str) options = options || {} let imeiRegex = imeiRegexWithoutHyphens if (options.allow_hyphens) { imeiRegex = imeiRegexWithHyphens } if (!imeiRegex.test(str)) { return false } str = str.replace(/-/g, '') let sum = 0 let mul = 2 const l = 14 for (let i = 0; i < l; i++) { const digit = str.substring(l - i - 1, l - i) const tp = Number.parseInt(digit, 10) * mul if (tp >= 10) { sum += (tp % 10) + 1 } else { sum += tp } if (mul === 1) { mul += 1 } else { mul -= 1 } } const chk = ((10 - (sum % 10)) % 10) if (chk !== Number.parseInt(str.substring(14, 15), 10)) { return false } return true };