我正在使用这个正则表达式来匹配一些字符串:
^([^\s](-)?(\d+)?(\.)?(\d+)?)$/
我很困惑为什么允许输入两个点,比如 ..
我的理解是只允许放 1 个破折号或不放 (-)?
任何没有限制或没有限制的数字 (\d+)?
一个点或一个点 (\.)?
为什么允许放置 ..
甚至 .4.6
?
测试在 http://www.regextester.com/ 中完成
最佳答案
[^\s]
表示任何不是空格的内容。这包括点。尝试匹配 ..
会让你:
[^\s]
匹配.
(-)?
不匹配(\d+)?
不匹配(\.)?
匹配.
(\d+)?
不匹配
我假设您想匹配数字(可能是负数/ float 数):
^-?\d+(\.\d+)?$
关于javascript - 解释这个正则表达式 js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31944262/