任意字符数的正则表达式不受限制,但应仅允许 12 个数字

Regular expression for any number of characters unlimited but should allow only 12 numbers

本文关键字:数字 字符 正则表达式 受限制 任意      更新时间:2023-09-26

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

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

请帮忙,谢谢。

为什么不像这样:

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
}

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

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

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

[0-9]{12}

试试这个...这将为您提供 12 位数字。12 个,只有 12 个。

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

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

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