Jquery 使用正则表达式在文本字段中仅输入阿拉伯字母
我有一些输入文本字段,用户必须在某些字段中只输入字母(或在某些字段中只输入数字),等等。我用正则表达式用英语实现了这一点,但如何用阿拉伯语实现 这是我的英文验证码 //只输入字母表Jquery 使用正则表达式在文本字段中仅输入阿拉伯字母,jquery,validation,Jquery,Validation,我有一些输入文本字段,用户必须在某些字段中只输入字母(或在某些字段中只输入数字),等等。我用正则表达式用英语实现了这一点,但如何用阿拉伯语实现 这是我的英文验证码 //只输入字母表 $(".alphaOnly").bind("keyup blur", function(e){ if(e.keyCode!=37 && e.keyCode!=39 && e.keyCode!=32 && e.keyCode!=17 &
$(".alphaOnly").bind("keyup blur", function(e){
if(e.keyCode!=37 && e.keyCode!=39 && e.keyCode!=32 && e.keyCode!=17 && e.keyCode!=8 && e.keyCode!=46 && !e.ctrlKey){
$(this).val( $(this).val().replace(/[^a-zA-Z_ ]*$/,'') );
}
});
$(".alphaOnly").bind("keydown blur", function(e){
if($(this).val().length == 0){
if(e.keyCode==32){
$(this).val("");
e.preventDefault();
}
}else{
if(e.keyCode!=37 && e.keyCode!=39 && e.keyCode!=32 && e.keyCode!=17 && e.keyCode!=8 && e.keyCode!=46 && !e.ctrlKey){
$(this).val( $(this).val().replace(/[^a-zA-Z_ ]*$/,'') );
}
}
});
列表的阿拉伯文字符集
[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]
您可以使用regex进行如下测试:
function HasArabicCharacters(text)
{
var arregex = /[\u0600-\u06FF]/;
alert(arregex.test(text));
}
Unicode阿拉伯文脚本:
阿拉伯文脚本包含在以下块中:
Arabic (0600—06FF, 225 characters)
Arabic Supplement (0750—077F, 48 characters)
Arabic Extended-A (08A0—08FF, 39 characters)
Arabic Presentation Forms-A (FB50—FDFF, 608 characters)
Arabic Presentation Forms-B (FE70—FEFF, 140 characters)
Rumi Numeral Symbols (10E60—10E7F, 31 characters)
Arabic Mathematical Alphabetic Symbols (1EE00—1EEFF, 143 characters)
Unicodes取自维基百科-我只想允许使用阿拉伯语和英语字母 我知道这不是最好的方法,但这是我的代码,它工作得非常完美:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let set = CharacterSet(charactersIn: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLKMNOPQRSTUVWXYZ أبجدهوزحطيكلمنسعفصقرشتثخذضظغ")
if string.rangeOfCharacter(from: set.inverted) != nil {
return false
}
return true
}
注意:别忘了设置textfield的委托