在外部.js文件中验证RegExp
Validate RegExp in external .js file
这里有一个令人困惑的问题。
我有一个使用AJAX的网站,其中主主页加载一个home.js文件,其中包含网站上所有页面所需的核心脚本。其中一个核心脚本是以下RegExp:
var datePattern = new RegExp("^([0][1-9]|[1][0-2])'/([0][1-9]|[1-2][0-9]|[3][0-1])'/([12][0-9][0-9][0-9])$");
当用户转到一个页面(通过AJAX)时,首先加载适当的表单验证script.js文件,该文件包含以下内容以验证日期(其中val是日期元素的值,并正确显示预期的日期值):
var val=elem[i].value;
if (!datePattern.test(val)) {
elem[i].style.background="#FF0000";
errno++;
}
我已经通过验证器传递了脚本和HTML,一切看起来都很好
在FF中一切都很好。但是在IE中。我得到的消息是datePattern未定义。home.js文件中的datePattern声明是什么,我需要更改它以确保它对其他js文件全局可用?
谢谢!
页面上的脚本一个接一个地执行。从逻辑上讲,所需要做的就是在任何需要它的东西之前执行针定义行。在静态页面上,这就像把它放在标记中的其他JS之前一样简单。在AJAX中,它需要在另一个之前加载并以某种方式执行,这可能会更加困难。
另一个常见的问题是范围。由于您使用的是var
,因此该变量将是其自身作用域的本地变量。请确保该行不在函数调用中。缩小问题范围的一个好方法是删除var
关键字。如果问题已解决;指责范围。如果持续存在;指责执行命令。
我希望这有助于调试。
原始regex表达式和语法运行良好。问题出在另一个jquery语法上,该语法失败且未报告错误,从而导致后续表达式失败。
相关文章:
- javascript regexp,用于验证一开始没有http的url
- Javascript Regexp验证不太有效
- javascript RegExp 验证 url 表达式
- Javascript regexp验证不起作用
- RegExp以验证http标头值
- 用于验证小数的Regexp不起作用
- 如何验证js弹出窗口中的regexp值何时在capybara/cucumber中可见
- REGEXP的JavaScript中的标题验证,可以采用字母数字,也可以采用特殊字符[,/()&-:.space
- 使用RegExp进行数字验证,以防止无效的用户输入
- 在外部.js文件中验证RegExp
- 在javascript中使用RegExp从记事本粘贴文本时,Textarea需要花费大量时间来验证文本
- RegExp用于验证不与数组一起工作的网站URL
- QML中TextField验证器的Regexp
- 使用regexp验证表单输入
- 调试一个Javascript RegExp正则表达式:验证挂在Amazon URL上
- 密码验证与密码栏®Exp在angular using指令中的特殊字符
- 在JavaScript regexp中使用p{L}进行验证
- JavaScript Regexp -允许回车让其他不需要的字符验证
- JS验证中的regexp, replace和ToUppercase问题
- RegExp通过验证