如果字符不是英文,如何检查字符串是否包含列表

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

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

    $(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));
        });

如你所见,我输入了不同语言的字母,但出于某种原因,代码无法 "read" 并且 return 是的,是否有办法将字符串拆分为数组,然后用它?或不同的代码或我需要添加/下载的东西

提前致谢

如果要求仅输入数字,您应该能够使用 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>

您可以使用 unicode 值制作正则表达式

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

例子

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

Example Link