我有一个像这样的正则表达式
/^[0-9]*\s*kg\s*[0-9]*$/
这接受像 100 kg
或 100kg
这样的字符串。我想让它也接受 100.1kg
或 100.1 kg
或 10,20 kg
等等(点和小数点都应该被接受).我如何更改当前的正则表达式,以便我提到的那些数字也测试为真?我见过这个支持数字和小数的正则表达式,但我不确定如何将它与我的正则表达式结合起来。
^[0-9]{1,2}([,.][0-9]{1,2})?$
最佳答案
要使其成为可选的,您可以使用可选的非捕获组 (?:
并在其后添加匹配的 0+ 次空格:
^[0-9]+(?:[,.][0-9]+)?\s*kg$
现在它会匹配
^
字符串的开始[0-9]+
1+ 位(?:
非捕获组[,.][0-9]+
匹配逗号或点和 1+ 位数字
)?
关闭非捕获组并使其可选\s*kg
匹配 0+ 次空白字符$
字符串结束
关于javascript - 如何使这个正则表达式也接受小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54448475/