[英]Regex to require at least one digit or to be left blank
需要一些我正在尝试创建的正则表达式的建议。
我需要检查字符串是否包含至少一个数字(0-9)或者它可以留空。
这是检查数字的正则表达式:
(.*[0-9]){1}.*$
如何修改它以允许空字符串?
也许你可以尝试这样的事情:
^($|.*[0-9])
即使^
和$
不消耗任何字符,它们仍然可以在组内部和外部使用。
此外,根据您正在做的事情,您可能甚至不需要这些组:
^$|.*[0-9]
你可以用
^(?:(?=\D*\d)|^$).*
^ # start of the string (?: (?=\\D*\\d) # either match at least one number | # or ^$) # the empty string .* # 0+ characters
请参阅regex101.com上的演示 。
适用两种条件?
(可选)标记:
^(\D*\d.*)?$
OP在问题下面的评论中提到了jquery。
您可以使用\\d
和test()
字符串中是否存在数字,并test()
字符串的长度,如下面的代码段所示。 这极大地简化了正则表达式模式和测试。
var a = [ 'cdjk2d', '', //valid 'abc', ' ' //invalid ] a.forEach(function(s){ if(s.length === 0 || /\\d/.test(s)) { console.log(s) } })
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.