nem*_*oth 4 regex jquery jquery-validate
我有一个我认为是正确的正则表达式来检查马来西亚IC卡:
\ d {6} - \d {2} - \d {4}(即xxxxxx-xx-xxxx格式的数字,其中x是0-9的数字)
但是,当我将其插入到我的jQuery中以进行验证时,尽管它以正确的格式编写,但它永远不会允许它提交表单.
这是我的代码:
<script type="text/javascript">
$.validator.setDefaults({
submitHandler: function(form) {
form.submit();
}
});
$.validator.addMethod("regex", function (value, element, regexp)
{
var check = false;
var re = new RegExp(regexp);
return this.optional(element) || re.test(value);
}, "Please enter a valid ic number");
$(document).ready(function () {
// validate signup form on keyup and submit
$("#commentForm").validate({
rules: {
ic_no: {
required: true,
regex: "\d{6}\-\d{2}\-\d{4}"
}
},
messages: {
ic_no: {
required: "Please input the IC number before searching.",
regex: "Please enter a valid ic number."
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
我不是javascript或正则表达式的专家,但我认为这"应该"有效.任何指针都将非常感激.
你必须转义将传递给RegExp构造函数的字符串内的反斜杠:
regex: "\\d{6}\\-\\d{2}\\-\\d{4}"
Run Code Online (Sandbox Code Playgroud)
我还建议添加锚点:
regex: "^\\d{6}\\-\\d{2}\\-\\d{4}$"
Run Code Online (Sandbox Code Playgroud)
这样您就会认为"1234567-12-12345"无效.
或者,您可以使用文字表达式传递RegExp对象:
regex: /^\d{6}-\d{2}-\d{4}$/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8462 次 |
| 最近记录: |