用JavaScript进行模式验证
我想要一个只有字母和数字的图案 我就是这样做的 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);
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代码@ishanshahre.test()
将返回布尔值。把它还给我,这正是我要找的。非常感谢你!是的,明白了!我并没有提到html文件中的模式。
var pattern = elem.getAttribute("pattern");