需要一些我正在尝试创建的正则表达式的建议。
我需要检查字符串是否包含至少一个数字(0-9)或者它可以留空。
这是检查数字的正则表达式:
(.*[0-9]){1}.*$
如何修改此项以允许空字符串?
答案 0 :(得分:3)
答案 1 :(得分:3)
也许你可以尝试这样的事情:
^($|.*[0-9])
即使^
和$
不使用任何字符,它们仍然可以在组内部和外部使用。
此外,根据您的工作情况,您甚至可能不需要这些小组:
^$|.*[0-9]
答案 2 :(得分:2)
您可以使用
^(?:(?=\D*\d)|^$).*
<小时/> 这说:
^ # start of the string
(?:
(?=\D*\d) # either match at least one number
| # or
^$) # the empty string
.* # 0+ characters
答案 3 :(得分:0)
使用?
(可选)标记应用这两个条件:
^(\D*\d.*)?$
答案 4 :(得分:0)
OP在问题下方的评论中提到了jquery。
您只需使用\d
和test()
测试字符串中是否存在数字,并测试字符串的长度,如下面的代码段所示。这极大地简化了正则表达式模式和测试。
var a = [
'cdjk2d', '', //valid
'abc', ' ' //invalid
]
a.forEach(function(s){
if(s.length === 0 || /\d/.test(s)) {
console.log(s)
}
})
&#13;