NodeJS 8位非重复数字的正则表达式

1cklez4t  于 2022-11-04  发布在  Node.js
关注(0)|答案(3)|浏览(200)

我想为电话号码做一个8位非重复正则表达式。它不应该与11111111或22222222匹配...... 88888888
我试着创建一个正则表达式,但它只匹配1
示例-^(?!.*([0-9])1{7})[0-9]{8}$
我需要做哪些更正?

2sbarzqh

2sbarzqh1#

请执行以下操作:

^(\d)(?!\1{7})\d{7}$

捕捉第一个数字,然后确保不会再重复7次。
Demo

sqxo8psd

sqxo8psd2#

您可以将此代码添加到脚本js:

function UpdateInput2(fun = '12345678') {    
arr = fun.split('');

for (let i = 0; i < arr.length; i++) {

    //for unique constant
    regex = /^(\d)(?!\1{7})\d{7}/g;
    str = fun;
    index = str.search(regex);
    fun = replaceIndex(fun, index, str[index] + '*');

}

$("#output").val(fun);

}

l0oc07j2

l0oc07j23#

它的工作原理是:

function isDigitRepeat(n) {
    const regex = /^(\d)(?!\1{7})\d{7}/g;
    return regex.test(n)
}

相关问题