gpt4 book ai didi

jquery - 马来西亚身份证 (IC) 正则表达式 - jQuery

转载 作者:行者123 更新时间:2023-12-03 23:02:28 24 4
gpt4 key购买 nike

我有一个我认为正确的正则表达式,用于检查马来西亚 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."
}
}
});

});

我不是 javascript 或正则表达式方面的专家,但我认为这“应该”有效。任何指示将不胜感激。

最佳答案

您必须对将传递给 RegExp 构造函数的字符串内的反斜杠进行转义:

regex: "\\d{6}\\-\\d{2}\\-\\d{4}"

我还建议向其中添加 anchor :

regex: "^\\d{6}\\-\\d{2}\\-\\d{4}$"

这样您就会认为“1234567-12-12345”无效。

更新

或者,您可以使用文字表达式传递 RegExp 对象:

regex: /^\d{6}-\d{2}-\d{4}$/

关于jquery - 马来西亚身份证 (IC) 正则表达式 - jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23286538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com