我需要创建应接受英文和阿拉伯字母的正则表达式。我怎么能这样做?
HTML:
<input type="text" class="ico1" name="firstname" id="firstname" placeholder="enter name " title="enter name ">
JS:
$("#register-form").validate({
rules: {
firstname: {
required: true,
minlength: 2,
regx: /^[a-zA-Z-,]+(\s{0,1}[a-zA-Z-, ])*$/
},
},
messages: {
firstname: {
required: "<font color='red'> please enter name </font>",
minlength: "<font color='red'>minimum length is 2</font>",
regx: "<font color='red'>enter only english or arabic letters</font>"
}
},
submitHandler: function(form) {
form.submit();
}
});
答案 0 :(得分:1)
我必须检查几件事情并在这里找到结论:
[\u0600-\u06FF]
正则表达式来匹配JS中的阿拉伯字符var regx = /^[a-zA-Z\u0600-\u06FF,-][\sa-zA-Z\u0600-\u06FF,-]*$/;
(请参阅demo)regx
规则,您需要使用additional-methods.js pattern
minlength
规则使用动态消息:使用minlength: jQuery.validator.format("At least {0} characters required!")
查看更新的JS demo:
var regx = /^[a-zA-Z\u0600-\u06FF,-][\sa-zA-Z\u0600-\u06FF,-]*$/; // E.g. هل بعتم بيتكم في نيويورك
$.validator.setDefaults({
submitHandler: function() {
alert("submitted!");
}
});
$("#register-form").validate({
debug: true, // REMOVE THIS, IT IS FOR DEMO DEBUG ONLY!!!
rules: {
firstname: {
required: true,
pattern: regx,
minlength: 2
},
},
messages: {
firstname: {
required: "please enter name",
minlength: jQuery.validator.format("At least {0} characters required!"),
pattern: "enter only english or arabic letters"
}
},
submitHandler: function(form) {
form.submit();
}
});
<script src="https://cdn.jsdelivr.net/jquery.validation/1.15.0/jquery.validate.min.js"></script>
<script src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/additional-methods.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="register-form" name="register-form">
<input type="text" class="ico1" name="firstname" id="firstname" placeholder="enter name " title="enter name "/>
<input type="Submit"/>
</form>
答案 1 :(得分:0)
对\p{InArabic}
和\p{Latin}
Unicode脚本使用以下正则表达式模式:
...
regx : /^[\p{InArabic}\p{Latin}-,]+(\s?[\p{InArabic}\p{Latin}-, ])*$/