首页 > 解决方案 > 为什么 /0(\.\d+)?|1/.test('0.') 返回 true?

问题描述

甚至/0(\.\d+)?|1/.test('...0.0.0') 返回true......我只想得到一个正则表达式来测试 0 到 1 之间的数字。

标签: javascriptregex

解决方案


您需要使用 and 锚定正则表达式^$否则如果可以在字符串中的任何位置找到该模式,则它匹配。

console.log(/^(0(\.\d+)?|1)$/.test('...0.0.0'));
console.log(/^(0(\.\d+)?|1)$/.test('0.1'));
console.log(/^(0(\.\d+)?|1)$/.test('2.3'));


推荐阅读