javascript - 如何使这个正则表达式也接受小数

标签 javascript regex

我有一个像这样的正则表达式

/^[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/

相关文章:

javascript - Electron js、Angular 5 中的 Firebase 电话号码身份验证

javascript - 使用 javascript 查找 <textarea> 当前行的值

Java 正则表达式模式有双反斜杠,如何以可读格式存储模式

python - 正则表达式从文件中删除所有内容而不是Python中的匹配模式

Python 正则表达式或

javascript - 正则表达式不适用于电话号码字段

javascript - Google Analytics 链接帐户无法正常工作

javascript - 在 Parse Cloud 代码中保存 "object without data"指针

javascript - 从 jquery 表单数据中删除 json 对象

PHP preg_match 不适用于换行