早些时候,我用的是正则表达式为/^-\d*(\.\d+)?$/
这是检查负十进制值,但现在我要加那么,它将使在外地负以及零。正则表达式允许负值或零
我试图使用或基于条件后,它将使零值,但没有成功。
请分享想法如何,我可以改善这个正则表达式。
早些时候,我用的是正则表达式为/^-\d*(\.\d+)?$/
这是检查负十进制值,但现在我要加那么,它将使在外地负以及零。正则表达式允许负值或零
我试图使用或基于条件后,它将使零值,但没有成功。
请分享想法如何,我可以改善这个正则表达式。
尝试/^-\d*(\.\d+)?$|^0$/
管道在锚具有更高的优先级,或者将其封装非捕获组内:
^(?:-\d*(?:\.\d+)?|0)$
^^^ ^^
这为我工作
^(-\d*(\.\d+)?|0)$
虽然这个代码片断可能是解决方案,[包括说明](// meta.stackexchange.com/questions/114762/explaining-entirely-代码为基础的答案)确实有助于提高您的文章质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。 – Adam
http://regexr.com/是真的正常表达和正确测试的好地方。 – JohnV