JavaScript RegExp 在每个有效和无效输入中返回 false

标签 javascript jquery regex

在我的 JSP 页面中,我有一个表,其中一列是以 HH:mm 格式显示的时间,数据类型为字符串(我在服务器中将其从日期转换为字符串)。现在我正在使用 Jquery 插件 Tabledit 应用内联表行编辑。

当我编辑列时,在发送到服务器之前,我会使用 RegExp 检查它。

var inTime = [];
var timeRegEx = new RegExp("^([0-9]|0[0-9]|1[0-9]|2[0-3]):([0-9]|0[0-9]|([1-5][0-9]))$");
inTime[1] = "14:34";
if (timeRegEx.test(inTime[1])) {
  alert("Matched");
  //return true;
} else {
  alert("Not Mateched");
  //return false;
}

我检查了一些onilne资源中RegExp的有效性,它是正确的。

但就我而言,在每个有效和无效输入中,它总是转到 else block 。

更重要的是,当我打印alert中inTime[1]的值时。它给出的输出如下:14%3A13

所以我还在正则表达式中将 : 替换为 %3A 但它也不起作用。

所以请告诉我哪里出了问题以及正确的解决方案是什么。

编辑:

此处:解释为 %3A,因此这可能会产生问题。

这里 inTime 是从表行获取值的数组。

最佳答案

var inTime = [];
var timeRegEx = new RegExp("^([0-9]|0[0-9]|1[0-9]|2[0-3]):([0-9]|0[0-9]|([1-5][0-9]))$");
inTime[1] = "14%A334";
if (decodeURIComponent(timeRegEx.test(inTime[1]))) {
  console.log("Matched");
  //return true;
} else {
  console.log("Not Mateched");
  //return false;
}

关于JavaScript RegExp 在每个有效和无效输入中返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45861130/

相关文章:

javascript - 如何将 jQuery 函数应用于所有具有相同类的元素。?

java - 这个正则表达式在 Java 中是什么意思?

javascript - XPages:使用 xpages 链接的 “onclick ” 事件打开下拉菜单

javascript - 如何向 header 请求添加参数?

javascript - React.js : Add component with value

javascript - 加载 facebook wall feed JSON 问题

javascript - AngularJS 变量问题

javascript - 如何根据页面宽度条件删除()和撤消删除()?我不需要隐藏或切换

c# - 在 C# 中使用正则表达式以任意顺序在字符串中查找单词的最佳方法是什么?

javascript - Gulp.src() 的路径参数内的正则表达式