0

我正在尝试使用 jquery 验证引擎来检查 MAC 是否经过验证,在验证引擎中,我添加了名为“onlyMAC”的自定义属性,如下所示:

"onlyMAC":{
"regex":"/^([A-Z0-9]){16}$/",
"alertText":"* MAC invalid"}

并以形式:

<form id='myform'>
<input name="mac" type="text" value="" class="validate[required,custom[onlyMAC]]"/>
</form>
<script>
$('#myform').validationEngine();
</script>

但是无论我为 mac 输入什么,validationEngine 总是返回那个 alertText:“* MAC invalid”。我在这里检查了我的正则表达式http://jsfiddle.net/chennet/LRfW6/,它看起来不错。那么,我哪里做错了?

4

1 回答 1

0

查看文档中的示例:https ://github.com/posabsolute/jQuery-Validation-Engine#selectors

从您的正则表达式定义中删除引号:

"onlyMAC":{
"regex":/^([A-Z0-9]){16}$/,
"alertText":"* MAC invalid"}

问题是您将正则表达式文字语法与正则表达式构造函数混合在一起:

/^([A-Z0-9]){16}$/    // RegExp literal uses the slashes
new RegExp('^([A-Z0-9]){16}$')    // RegExp constructor takes a string (without the slashes).
于 2013-08-23T03:11:43.190 回答