在 jQuery 验证之前更改号码
Change number before jQuery validation
我可以使用此函数将 arabic
数字转换为 latin
数字:
function toEnglishDigits(str) {
// convert arabic indic digits [٠١٢٣٤٥٦٧٨٩]
e = '٠'.charCodeAt(0);
str = str.replace(/[٠-٩]/g, function(t) {
return t.charCodeAt(0) - e;
});
return str;
}
console.log(toEnglishDigits("abc[0123456789][٠١٢٣٤٥٦٧٨٩]"));
现在我使用 jQuery 验证插件验证我的表单,如下所示:
$(document).ready(function() {
$("#btnConsult").click(function() {
jQuery.validator.setDefaults({
errorElement: "div",
errorPlacement: function(error, element) {
error.addClass("invalid-feedback");
element.closest(".form-group").append(error);
},
highlight: function(element, errorClass, validClass) {
$(element).addClass("is-invalid");
},
unhighlight: function(element, errorClass, validClass) {
$(element).removeClass("is-invalid");
},
});
$("#formConsult").validate({
rules: {
phone: {
required: true,
number: true,
minlength: 10,
maxlength: 10,
},
},
});
});
});
现在,我需要在使用 jQuery 验证之前更改 arabic
号码。因为 number
规则不适用于 arabic
号码。
如何在验证前将号码从 arabic
更改为 latin
?!
只需在调用 validate()
方法之前将数字从 Arabic
转换为 Latin
。
const phoneField = $('input[name="phone"]');
phoneField.val(toEnglishDigits(phoneField.val()));
$("#formConsult").validate({
rules: {
phone: {
required: true,
number: true,
minlength: 10,
maxlength: 10,
},
},
});
我可以使用此函数将 arabic
数字转换为 latin
数字:
function toEnglishDigits(str) {
// convert arabic indic digits [٠١٢٣٤٥٦٧٨٩]
e = '٠'.charCodeAt(0);
str = str.replace(/[٠-٩]/g, function(t) {
return t.charCodeAt(0) - e;
});
return str;
}
console.log(toEnglishDigits("abc[0123456789][٠١٢٣٤٥٦٧٨٩]"));
现在我使用 jQuery 验证插件验证我的表单,如下所示:
$(document).ready(function() {
$("#btnConsult").click(function() {
jQuery.validator.setDefaults({
errorElement: "div",
errorPlacement: function(error, element) {
error.addClass("invalid-feedback");
element.closest(".form-group").append(error);
},
highlight: function(element, errorClass, validClass) {
$(element).addClass("is-invalid");
},
unhighlight: function(element, errorClass, validClass) {
$(element).removeClass("is-invalid");
},
});
$("#formConsult").validate({
rules: {
phone: {
required: true,
number: true,
minlength: 10,
maxlength: 10,
},
},
});
});
});
现在,我需要在使用 jQuery 验证之前更改 arabic
号码。因为 number
规则不适用于 arabic
号码。
如何在验证前将号码从 arabic
更改为 latin
?!
只需在调用 validate()
方法之前将数字从 Arabic
转换为 Latin
。
const phoneField = $('input[name="phone"]');
phoneField.val(toEnglishDigits(phoneField.val()));
$("#formConsult").validate({
rules: {
phone: {
required: true,
number: true,
minlength: 10,
maxlength: 10,
},
},
});