我有这样的正则表达式

/^[0-9]*\s*kg\s*[0-9]*$/


它接受100 kg100kg之类的字符串。我正努力使它也接受100.1kg100.1 kg10,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/

10-12 01:40