任意数量的字符的正则表达式无限制但应该只允许12个数字

时间:2013-10-25 23:00:56

标签: javascript regex

我在正则表达方面遇到困难。

该要求是任意数量字符无限制的正则表达式,但应仅允许12个数字{数字}。

请帮助,谢谢。

4 个答案:

答案 0 :(得分:1)

为什么不这样:

var s = '12345aaaaaaaaaaaaaaaaabc444';

var maxDigits = 12,
    len = s.length,
    numDigits = 0,
    newLen;


if (len > maxDigits) {
    newLen = s.replace(/[0-9]/g, '').length;
    numDigits = len - newLen;
}

if (numDigits > maxDigits) {
    //error
}

答案 1 :(得分:1)

我认为这个正则表达式可以解决这个问题:

/^(.*?[\d].*?){12}$/

您正在对数字两边的任意数量的字符进行不匹配的匹配。该子模式必须存在12次。

答案 2 :(得分:0)

[0-9]{12}

试试这个...这将为您提供12位数字。 12和12。

现在你需要添加任何字符而不是数字,需要帮助吗?

答案 3 :(得分:0)

匹配字符串中3位数的示例:

/^(([^\d]*\d[^\d]*){3})$/.test('asd1a2a4a') // -> (3 digits) true
/^(([^\d]*\d[^\d]*){3})$/.test('asd1a2a44a') // -> (4digits) false