我在正则表达方面遇到困难。
该要求是任意数量字符无限制的正则表达式,但应仅允许12
个数字{数字}。
请帮助,谢谢。
答案 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