我希望匹配以点开头的数字组,或者根本不匹配。我提出了正则表达式if (playing === true) {
。但是,即使(?:\.\d+)?
上的量词是一个加号,它也会匹配字符串.
。如果我摆脱了最后一个问号,我认为这使得该组成为可选的,因为没有前面的量词,那么它工作正常。我在JavaScript中使用RegExp引擎,在这种情况下特别是\d
。
这是我从测试中得到的结果:
node.js
,没有可选:true .123
,没有可选:false 为空,没有可选:false
.
,可选:true
.123
,可选:true 为空,可选:true
.
,预期:true
.123
,预期:false 感谢。
答案 0 :(得分:2)
使用
/^<your regex>$/
作为一般规则,以确保您的整个字符串匹配。现在你的正则表达式允许空字符串可以随时匹配。
请注意
/(?:\.\d+)?/.test('a') === true
并且正则表达式将匹配任何非空字符串。
答案 1 :(得分:1)
您需要将^和$标记添加到正则表达式中,如此
^(?:\.\d+)?$
否则它将匹配字符串中任何一点的空字符串。