繁体   English   中英

仅使用不带正则表达式的 JavaScript 允许数字和连字符

[英]Allow numbers and Hyphen only using JavaScript without Regular Expression

我正在尝试在不使用正则表达式(regex)的情况下构建 Nic 验证器。

//网卡验证 // 预期 output 格式 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");
}

使用正则表达式会简单得多,但是当您要求没有正则表达式的替代方案时,请尝试:

 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))] numbers = numbers.map(value => {if(isNaN(value)) return 'NaN'; else return value}) 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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM