在标题中引用的查询的上下文中,“Javascript RegEx 不工作” ,”用户遇到了一个问题,即无论输入值如何,正则表达式 (regEx) 始终返回 false。查询中提供的代码片段如下:
function checkLegalYear() {
var val = "02/2010";
if (val != '') {
var regEx = new RegExp("^(0[1-9]|1[0-2])/\d{4}$", "g");
if (regEx.test(val)) {
//do something
}
else {
//do something
}
}
}
用户尝试使用正则表达式验证年份输入,但遇到了意外结果。尽管在多个在线编辑器中测试了此代码,正则表达式仍然返回 false。
解决问题:
问题的根源在于用于创建的方法正则表达式对象。从字符串定义正则表达式时,反斜杠字符必须加倍,以防止解析过程中出现错误解释。要纠正此问题,应使用以下代码:
var regEx = new RegExp("^(0[1-9]|1[0-2])//\\d{4}$", "g");
或者,建议直接使用 RegEx 语法,这样就无需使用双反斜杠:
var regEx = /^(0[1-9]|1[0-2])//\\d{4}$/g;
通过实施这些修改,正则表达式现在应该按预期运行,验证年份输入并提供准确的结果。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3