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

时间:2016-04-17 19:51:34

标签: javascript jquery textbox

我想要有效的文本框文字。文本框用于电话号码,当然,字母和其他任何其他数字我使用不同类型的代码

    $(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是否有一种方法可能将字符串拆分为数组然后使用它?或者我需要添加/下载的不同代码或其他东西

提前谢谢

2 个答案:

答案 0 :(得分:1)

如果要求仅输入数字,则您应该能够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>
{{1}}

答案 1 :(得分:1)

您可以使用unicode值进行正则表达式

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

实施例

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

Example Link