如何使用 JavaScript 正则表达式来验证这样的数字?
- 1,000
- 1,000.00
- 1000.00
- 1000
我试过了(使用的字符串不匹配):
test('2342342342sdfsdfsdf');
function test(t)
{
alert(/\d{1,3}(,\d{3})*(\.\d\d)?|\.\d\d/.test(t));
}
但仍然给我真实的感觉。
最佳答案
如果你想测试完整的输入字符串是否匹配一个模式,那么你应该以 ^
开始你的正则表达式并以 $
结束。否则,您只是在测试输入字符串是否包含与给定模式匹配的子字符串。
^
表示“行首”$
表示“行尾”
在这种情况下,这意味着您必须将正则表达式重写为:
/^(\d{1,3}(,\d{3})*(\.\d\d)?|\.\d\d)$/
如果您要省略额外的括号,否则 "|"
的优先级将低于 ^
和 $
,因此请输入"1,234.56abc"
或 "abc.12"
仍然有效。
关于JavaScript 验证 : regex to validate numbers with comma,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5456023/