Javascript 正则表达式验证不太有效

标签 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)
}

但是,这似乎对所有数值都返回 true,谁能告诉我如何解决这个问题?

最佳答案

您需要使用 anchors确保整个字符串(而不仅仅是子字符串)与正则表达式匹配。此外,如果您从字符串构造正则表达式(并删除 {1},这是一个空操作),请不要忘记加倍反斜杠:

var matchValue = new RegExp('^[0-9]{1,5}(\\.[0-9])?$');

关于Javascript 正则表达式验证不太有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20106535/

相关文章:

javascript - 用于传递除字符列表之外的所有字符的正则表达式

c - 如何制作受正则表达式启发的字符串函数?

c++ - 使用 SLRE 正则表达式查找两个标签之间的数据

javascript - 正则表达式检查 & ( ) 和重复字母

javascript - 下拉内容更改的问题

javascript - jQuery 插件回调无法正常工作

javascript - 是否应该避免在 AngularJS Controller 中包含常规 Javascript 对象?

javascript - Firefox 不会显示我添加的 jquery 元素,但 Chrome 会

php - regEx 允许在数字之间插入字母

regex - 如何将子域与 gorilla mux 匹配