regex 使用JavaScript进行模式验证

pn9klfpd  于 2023-08-08  发布在  Java
关注(0)|答案(3)|浏览(90)

我想要一个只有字母和数字的图案。
我就是这么做的...
JavaScript文件:

var pattern_checked = checkPattern(); 

function checkPattern(){
        var elem = document.getElementById("name");

        var pattern = elem.getAttribute("[a-zA-Z0-9_]");
        var re = new RegExp(pattern);
        if (re.test(elem.value)) {
            return true;
        } else {
            return false;
        }
    }

字符串
但在这两种情况下,我都错了。
这段代码有什么问题?

bf1o4zei

bf1o4zei1#

我相信你是想做:

function checkPattern() {
    var elem = document.getElementById("name");

    // Allow A-Z, a-z, 0-9 and underscore. Min 1 char.
    var re = /^[a-zA-Z0-9_]+$/;

    return re.test(elem.value);
}

字符串

yzckvree

yzckvree2#

Example fiddle
你的问题应该在这条线上。

var pattern = elem.getAttribute("[a-zA-Z0-9_]");

字符串
属性通常应具有带值的名称。但是从你的例子中,似乎值也是name。HTML代码应该像下面这样:

<input type='text' id='name' pattern='[a-zA-Z0-9_]'>


然后为了得到图案

var pattern = elem.getAttribute("pattern");

niknxzdl

niknxzdl3#

使用纯jquery/js可以:

<input type="text" placeholder="Ex 15.04.2023" class="date" required pattern="\d\d\.\d\d\.\d{4}"/>

css:
.date:invalid{
    background:red !important;
}

script:
$('.date').keyup(function(){
  console.log($('.date:valid').length)
});

字符串

相关问题