Regex 正则表达式-字符串包含的数字不应超过7位
字符串的规则:Regex 正则表达式-字符串包含的数字不应超过7位,regex,regex-negation,Regex,Regex Negation,字符串的规则: 可以包含0-7个数字 测试用例: abcd1234ghi567⟶ 真值 1234567abc⟶ 真值 ab1234cd567⟶ 真值 abc12⟶ 真值 abc12345678⟶ 错误 我怎样才能得到一个正则表达式呢 我面临的问题是-如何保持整个字符串中的数字计数。数字可以出现在字符串中的任何位置 我想要一个纯正则表达式解决方案解决它 /^(\D*\D?\D*){0,7}$/ 每个数字字符都可以被非数字字符包围。方法1 如果您同意在JavaScript中添加一些逻辑,那
- 可以包含0-7个数字
测试用例:
⟶ <代码>真值abcd1234ghi567
⟶ <代码>真值1234567abc
⟶ <代码>真值ab1234cd567
⟶ <代码>真值abc12
⟶ <代码>错误abc12345678
/^(\D*\D?\D*){0,7}$/
每个数字字符都可以被非数字字符包围。方法1
如果您同意在JavaScript中添加一些逻辑,那么像此函数这样简单的函数应该可以:
function validate(teststring) {
return teststring.match(/\d/g).length < 8;
}
函数验证(teststring){
返回teststring.match(/\d/g).length<8;
}
演示
函数验证(teststring){
返回teststring.match(/\d/g).length<8;
}
document.body.innerHTML=
“abcd1234ghi567:”+验证('abcd1234ghi567')+”
+
“1234567abc:”+验证('1234567abc')+“
”+
“ab1234cd567:”+验证('ab1234cd567')+”
+
“abc12:”+验证('abc12')+”
+
“abc12345678:”+验证('abc12345678')+”
代码>以下正则表达式可以检查总位数是否小于7:
var i,strings=[“abcd1234ghi567”、“1234567abc”、“ab1234cd567”、“abc12”、“abc12345678”];
对于(一组字符串){
编写(i+“->”+/^(?:[\D]*[0-9][\D]*){0,7}$/。测试(i)+“”;
}
检查if语句中的“abc12345678”.match(/\d/g).length
。我想要一个正则表达式,而不必在function@supritashankar:原因是什么?@casimirithippolyte我想作为json模式的一部分。我不想包括我的功能。我想这就是你想要的:谢谢你的回答。我只使用正则表达式添加了下面的答案。不必使用函数。检查它。向下投票,因为它没有满足原始要求,这是一个纯正则表达式匹配。@LennyMarkus:问题没有明确提到需要纯正则表达式解决方案,它包含标签JavaScript
@LennyMarkus:只是为了完整性,我添加了第二种方法,其中逻辑仅放在正则表达式中。