Javascript正则表达式验证不太正常

时间:2013-11-20 20:39:50

标签: javascript regex

我正在尝试使用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)
}

然而,对于所有数值,这似乎都是正确的,有人能告诉我如何解决这个问题吗?

2 个答案:

答案 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)
}