如何在正则表达式中插入流量计数器?

时间:2018-05-17 21:03:23

标签: javascript

我试图插入流量计数器' i'在一个简单的Reg Exp中。 通过此流程,我想验证一串数字中是否只显示0到9之间的1种数字。 字符串

中至少有一个数字必须与另一个不同
{{1}}

3 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

var regex = new RegExp(i, 'g');
var count = (myString.match(regex) || []).length;

应该正常工作

答案 1 :(得分:0)

如果您的目标是匹配16位数字并确保它们不是全部相同,则可以使用单个正则表达式执行此操作:



//Example:
var myString = "2222222222222222"; //Should Output Error
var myString2 = "2222222222222228"; //Should be OK

var tester = /(\d)\1{15}/

function testString(str) {
    if (tester.test(str)) {
        console.log(str + " - ERROR!!!");
    } else {
        console.log(str + " - OK");
    }
}

testString(myString);
testString(myString2);




您匹配组中的数字,然后查看它是否重复了15次。

答案 2 :(得分:0)

使用socket从字符串构建正则表达式。

例如要new RegExp \d[1]\等...你会做这样的事情(使用模板文字)

\d[2]\

或字符串组合

for(var i = 0; i <= 9; i++)
{
    //I'm trying here to put the 'i' inside the regular expression
    var count = (myString.match(new RegExp(`\d{${i}}`, 'g') || []).length; // <-- here
    if(count == 16)
    {
       console.log("ERROR!");
       break;
    }
}