我正在尝试构建一个不使用正则表达式(regex)的Nic验证器。
//NIC验证//预期输出格式12345-1234567-1
下面是我的代码示例。 我不明白的是我如何只验证数字和连字符?
let nicVal= myForm.nic.value;
let hyph ='-';
if(nicVal.length===0){
console.log("Please enter the cnic");
}
else if(nicVal[5]===hyph && nicVal[5]===hyph )
{
console.log("Valid");
}
else{
console.log("invalid");
}
使用正则表达式会简单得多,但是当您要求一个没有正则表达式的替代方法时,请尝试:
null
let button = document.querySelector('button')
let input = document.querySelector('input')
button.addEventListener('click', function() {
let value = input.value
let numbers = [Number(value.substr(0, 5)), Number(value.substr(6, 7)), Number(value.substr(14, 1))]
let hifens = [value.indexOf('-'), value.lastIndexOf('-')]
if(numbers.indexOf('NaN') == -1 && hifens[0] == 5 && hifens[1] == 13) {
console.log('Valid!')
} else {
console.log('Invalid!')
}
})
<input type="text" placeholder="type..." maxlength="15" value="12345-1234567-1">
<button>Check</button>