我正在尝试验证输入。
输入的数字必须为9位数字。
我们需要防止000000000、111111111、222222222、123456789、234567890、098765432、987654321、010101010、121212121、000000001、000000010等类型的输入。
我唯一想到的就是测试每种可能性。显然,这将是大量的代码,或者像这样的正则表达式:
var input="111111111";
var regex = /000000000|11111111|222222222|123456789|234567890|098765432|987654321|010101010|121212121|00000001|000000010/; // and so on and so on and so on.......
var found = input.match(regex);
console.log(found);
有人有更好的方法吗?
最佳答案
您可以使用以下方法避免重复的序列和数字,例如111811111:
\b(?!(?:(?=(\d))((\d+)\3)\2*\1|(\d{3})\4{2}|(?=\d*(\d)(?!\5)(\d))(?:\5*\6\5*|\6*\5\6*))\b)\d{9}\b
您可以测试:123456789、012345678、876543210等。
与:
if ( parseInt(s) + parseInt(s.split("").reverse().join("")) % 111111111 == 0 )