Jquery 正则表达式要求至少有一个数字或留空

Jquery 正则表达式要求至少有一个数字或留空,jquery,regex,string,Jquery,Regex,String,需要一些建议,为正则表达式我试图创建 我需要检查字符串是否包含至少一个数字(0-9),或者可以保留为空 这是我的正则表达式,用于检查数字: (.[0-9]){1}.$ 我如何修改它以允许空字符串?您可以使用这样的 ^(?:.*?\d.*)?$ 您可以使用 ^(?:(?=\D*\d)|^$).* 上面说: ^ # start of the string (?: (?=\D*\d) # either match at least one number |

需要一些建议,为正则表达式我试图创建

我需要检查字符串是否包含至少一个数字(0-9),或者可以保留为空

这是我的正则表达式,用于检查数字:

(.[0-9]){1}.$

我如何修改它以允许空字符串?

您可以使用这样的

^(?:.*?\d.*)?$
您可以使用

^(?:(?=\D*\d)|^$).*

上面说:

^             # start of the string
(?:
    (?=\D*\d) # either match at least one number
    |         # or
    ^$)       # the empty string
.*            # 0+ characters

请参阅。

也许您可以尝试以下方法:

^($|.*[0-9])
即使
^
$
不使用任何字符,它们仍然可以在组的内部和外部使用

此外,根据您所做的工作,您甚至可能不需要这些小组:

^$|.*[0-9]

使用
(可选)标记应用这两个条件:


OP在问题下方的评论中提到了jquery

您只需使用
\d
test()
测试字符串中是否存在数字,还可以测试字符串的长度,如下面的代码段所示。这大大简化了regex模式和测试

var a=[
“cdjk2d”,“”,//有效
“abc”,“”//无效
]
a、 forEach(函数){
如果(s.length==0 |/\d/.test){
控制台日志
}

})
您所说的或可以保留为空是什么意思?另外,
{1}
是多余的。@ctwheels,字符串应该包含类似于
cdjk2d
的数字,或者应该是空的。这两种情况都应该进行验证。@BradG哪种语言?@ctwheels,将其与jquery验证一起使用。
^(?=[^\d\n]*\d |$).
更快:)如果最终要使用正则表达式,我更喜欢只使用正则表达式的解决方案。@revo不太确定我是否理解您的意思mean@S.Jovan谢谢我想没有必要。不过,这取决于代码的其余部分。如果需要捕获,那么也许
^(|。*[0-9].*)$
将是首选形式。我不明白为什么这应该是可接受的答案,请查看它只匹配一半字符串的位置。要么在
[0-9]
后面使用另一个
*
,要么一起看)。@Jan绿色仅显示匹配的零件。这取决于一个人想做什么。如果要收集整个匹配项,则可以添加
*
。然而,如果你只是想确定你找到了一个匹配项,你可以在确认后立即停止。这个问题没有具体说明他们想要整个团队。至于lookaheads,这会变得复杂,需要考虑您的实现,需要更多的处理,所以我觉得这个简单的问题有点过分。只有在匹配的情况下才进行检查。
^(\D*\d.*)?$