Javascript验证数字,不重复,不连续

Javascript Validate number, nonrepeating, nonsquential

本文关键字:不连续 数字 Javascript 验证      更新时间:2023-09-26

我正在尝试验证一个输入。

输入必须是数字,长度为9位数。

我们需要防止000000000、111111111、222222222、123456789、234567890、098765432、987654321、010101010、121212121、000000001、0000000 10等类型的输入。

我唯一能想到的就是测试每一种可能性。显然,这将是一个巨大的代码量,或者像这样的正则表达式

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 )

将单个数字解析为整数列表怎么样。然后,您可以更容易地测试一般情况,如"所有相同的数字"、"升序"、"降序"、"交替数字"等等

当然,这是假设你不想为了使用RegExs而使用它们。