我正在尝试使用RegExp验证,这个数字最多可包含5个数字,后跟一个小数位选项。像48293或23.4一样好。 99.99或453543不是。我写了以下函数:
function validateLoad(load_value) {
var matchValue = new RegExp('[0-9]{1,5}(\.[0-9]{1})?')
return matchValue.test(load_value)
}
然而,对于所有数值,这似乎都是正确的,有人能告诉我如何解决这个问题吗?
答案 0 :(得分:3)
您需要使用anchors来确保正则表达式匹配整个字符串(而不仅仅是子字符串)。另外,如果你从一个字符串构造正则表达式,那么不要忘记加倍反斜杠(并删除{1}
,这是一个无操作):
var matchValue = new RegExp('^[0-9]{1,5}(\\.[0-9])?$');
答案 1 :(得分:0)
使用文字符号可以避免转义反斜杠:
function validateLoad(load_value) {
return /^\d{1,5}(\.\d)?$/.test(load_value)
}