用JavaScript进行模式验证

用JavaScript进行模式验证,javascript,regex,pattern-matching,Javascript,Regex,Pattern Matching,我想要一个只有字母和数字的图案 我就是这样做的 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);

我想要一个只有字母和数字的图案

我就是这样做的

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;
        }
    }
但在这两种情况下,我都是错的


这段代码有什么问题?

我相信您的意思是:

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

你的问题应该在这条线上

var pattern = elem.getAttribute("[a-zA-Z0-9_]");
属性通常应有一个带值的名称。但从您的示例来看,该值似乎也是name。 HTML代码应如下所示:-

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

你也可以发布你的html。你确定你的html中有类似于
[a-zA-Z0-9_]
的属性吗?我想这是
模式属性
你检查了
元素getAttribute(“[a-zA-Z0-9_]”)将返回什么吗?我猜你的模式就是属性值
elem.getAttribute(“attributeName”)
将返回您的模式。@prasad我想我做错了什么。如何使用该模式?是的,您做错了。这就是为什么我要求html代码@ishanshah
re.test()
将返回布尔值。把它还给我,这正是我要找的。非常感谢你!是的,明白了!我并没有提到html文件中的模式。
var pattern = elem.getAttribute("pattern");