我有这样的正则表达式
/^[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$
Regex demo
现在它将匹配
^
字符串的开头[0-9]+
1个以上的数字(?:
非捕获组[,.][0-9]+
匹配逗号或点以及1个以上的数字)?
关闭非捕获组并将其设置为可选\s*kg
匹配0+次空白字符$
字符串结尾关于javascript - 如何使此正则表达式也接受小数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54448475/