2017-04-11 97 views
0

早些时候,我用的是正则表达式为/^-\d*(\.\d+)?$/这是检查负十进制值,但现在我要加那么,它将使在外地负以及零。正则表达式允许负值或零

我试图使用或基于条件后,它将使零值,但没有成功。

请分享想法如何,我可以改善这个正则表达式。

+0

http://regexr.com/是真的正常表达和正确测试的好地方。 – JohnV

回答

0

尝试/^-\d*(\.\d+)?$|^0$/管道在锚具有更高的优先级,或者将其封装非捕获组内:

^(?:-\d*(?:\.\d+)?|0)$ 
^^^   ^^ 
0

这为我工作

^(-\d*(\.\d+)?|0)$ 
+0

虽然这个代码片断可能是解决方案,[包括说明](// meta.stackexchange.com/questions/114762/explaining-entirely-代码为基础的答案)确实有助于提高您的文章质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。 – Adam