我正在尝试验证输入。

输入的数字必须为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 )

10-07 16:32
查看更多