我正在尝试构建一个正则表达式,该正则表达式最多接受3个整数和两个小数位
^\d{1,3}(\.\d{1,2})?
但是每当我在javascript上运行RegExp.test()时,都不会返回预期的结果
有效值之间应该类似
1, 5.9, 19, 34.23, 146, 345.2, 234.45,
无效值应类似于
12.345, 1267.23, 6578, 1.783
答案 0 :(得分:2)
您只需要添加一个$
即可将其标记为字符串的结尾,否则它将检测到一个类似于12.345
的数字,因为12.34
是有效数字,而它不会不要说string
应该就此停止。
console.log("5.9: " + /^\d{1,3}(\.\d{1,2})?$/.test("5.9"));
console.log("19: " + /^\d{1,3}(\.\d{1,2})?$/.test("19"));
console.log("34.23: " + /^\d{1,3}(\.\d{1,2})?$/.test("34.23"));
console.log("1512.34: " + /^\d{1,3}(\.\d{1,2})?$/.test("1512.34"));
console.log("1.783: " + /^\d{1,3}(\.\d{1,2})?$/.test("1.783"));
答案 1 :(得分:1)
只需检查您的{1,2}小数点在数字的结尾处终止(使用$):
^\d{1,3}(\.\d{1,2})?$