我很难允许斜线" /"使用现有的正则表达式
下面是一个允许点和数字的现有正则表达式:
val.match(/^[0-9]+(\.[0-9]{1,2})?$/)
我将其更改为...
val.match(/^[0-9]+([./][0-9\/]{1,2})?$/)
但是这个人不会允许像1.5 / 384这样的数字,其中点/周期和斜线同时。
有人可以帮我吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以在主模式部分后面添加一个可选的非捕获组,以匹配1或0次出现/
后跟1位或多位数字:
/^\d+(?:\.\d{1,2})?(?:\/\d+)?$/
^^^^^^^^^^
请参阅regex demo
<强>详情
^
- 字符串开头\d+
- 一位或多位(?:\.\d{1,2})?
- .
的可选序列,然后是1或2位数字(?:\/\d+)?
- /
然后1+位数$
- 字符串结束。如果/
之后的数字可以浮动的格式与第一个数字相同:
/^\d+(?:\.\d{1,2})?(?:\/\d+(?:\.\d{1,2})?)?$/
^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^