在 jQuery 验证之前更改数字
Posted
技术标签:
【中文标题】在 jQuery 验证之前更改数字【英文标题】:Change number before jQuery validation 【发布时间】:2021-10-15 14:39:27 【问题描述】:我可以使用这个函数将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
?!
【问题讨论】:
【参考方案1】:只需在调用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,
,
,
);
【讨论】:
以上是关于在 jQuery 验证之前更改数字的主要内容,如果未能解决你的问题,请参考以下文章
使用 JavaScript / jQuery 进行简单的数字验证