我可以使用
吗?\d\d\d\d[^\d]
检查连续四个号码?
例如,
411112确定
455553确定
1200003确定
f44443确定
g55553确定
3333 OK
f4442否
45553否
f4444g4444否
f44444444否
答案 0 :(得分:12)
如果您想在字符串/\d\d\d\d/
或/\d{4}/
中找到任意4个数字的系列。如果要查找一系列正好4位数,请使用/[^\d]\d{4}[^\d]/
。如果字符串应该只包含4个连续数字,请使用/^\d{4}$/
。
编辑:我想你想找到4个相同的数字,你需要一个反向引用。 /(\d)\1{3}/
可能就是你要找的东西。
编辑2:/(^|(.)(?!\2))(\d)\3{3}(?!\3)/
只会匹配恰好有4个相同连续数字的字符串。
第一组匹配字符串或任何字符的开头。然后是使用第一组的负面预测,以确保后面的字符与第一个字符(如果有)不匹配。第三组匹配任何数字,然后重复3次,并反向引用第3组。最后有一个预测,确保后续字符与连续数字系列不匹配。
这种东西在javascript中很难做到,因为你没有像前向引用和后视这样的东西。
答案 1 :(得分:1)
这应匹配四位数字(\d\d\d\d
),后跟非数字字符([^\d]
)。如果您只想匹配任意四位数字,则应使用\d\d\d\d
或\d{4}
。如果要确保该字符串仅包含四个连续数字,请使用^\d{4}$
。 ^
将指示正则表达式引擎在字符串的开头匹配,而$
将指示正则表达式引擎在字符串的末尾停止匹配。
答案 2 :(得分:1)
数字应该是字符串的一部分,还是只需要四个数字?在后一种情况下,正则表达式应为^\d{4}$
。 ^
标记字符串的开头,$
结束。这样可以确保只有四个数字有效,而且之前或之后都没有。