如何检查字符串是否包含非英语字符列表

How to check if a string contain a list if characters which are not in english

本文关键字:包含非 是否 英语 字符 列表 字符串 何检查 检查      更新时间:2023-09-26

我想要有效的文本框文本。文本框是一个电话号码,所以,当然,字母和其他任何号码,我使用了不同类型的代码

    $(document).ready(function () {
        $("#sub").click(function () {
            var regex = /[$%^&*()_+[]{}<>?]אבגדהוזחטיכךלמםנןסעפצקרשת  '"/
            var bleangth = $('.bphone').val().length;
            var eleangth = $('.ephone').val().leangth;
            var cbphone = $('.bphone').val();
            var cephone = $('.ephone').val();
            if (bleangth < 3 || eleangth < 7) {
                $('#bad').removeClass("error");
                $('#short').addClass("error");
            }
            else
                if (regex.test(cbphone) || regex.test(cephone)) {
                    $('#short').removeClass("error");
                    $('#bad').addClass("error");
                }
                else {
                    $('#bad').removeClass("error");
                    $('#short').removeClass("error");
                    //$('h3').removeClass("snerror")
                }
            alert( "end " + regex.test(cephone) +" start " + regex.test(cbphone));
        });

正如你所看到的,我输入了来自不同语言的字母,但由于某种原因,代码无法"读取"并返回true。有没有一种方法可以将字符串拆分为数组,然后使用它?或不同的代码或我需要添加/下载的东西

提前感谢

您可以使用unicode值生成正则表达式

var regex = /^['u05d0-'u05ea]|[$%^&*()_+{}<>']'[?]$/

示例

$(document).ready(function(){
    var regex = /^['u05d0-'u05ea]|[$%^&*()_+{}<>']'[?]$/
    $("#buttonCheck").click(function(){
            alert(regex.test($("#text").val()));
  });
});

链接示例

如果要求只输入数字,则应能够将NOT运算符!运算符与RegExp运算符/'D/一起使用;例如。;!/'D/.test(/*input*/),其中如果输入是数字,则true将是结果,如果输入不是数字,则为false


一种使用HTML5 <input>元素的方法,其中pattern属性设置为'd+required属性;<label>元件、CSS :focus:invalid、相邻同级选择器+

input + label {
  display:none;
}
input:focus:invalid + label {
  display:block;
  color:red;
}
<input type="text" 
       pattern="'d+"
       placeholder="Please input digits 0-9"
       required /><label>Invalid input. Please input digits 0-9</label>