如何仅为文本创建RegEx
模式。我有一些代码,但我不明白它为什么不起作用。
document.myform.firstname.onchange = function() {
var pattern = new RegExp("\\a-z+", "i");
var isValid = this.value.search(pattern) >= 0;
if (!(isValid)) {
alert("error");
} else {
alert("fine");
}
};
答案 0 :(得分:1)
OP中的给定正则表达式将与字符串\a-z
匹配,您必须使用评论中提到的/[a-z]+/i
,因此您的代码将:
var pattern = new RegExp("\[a-z]+", "i");
而不是:
var pattern = new RegExp("\\a-z+", "i");
这会有所帮助。
//Old regex
var pattern = new RegExp("\\a-z+", "i");
console.log('11\a-z11'.search(pattern)>=0); //true
console.log('1111'.search(pattern)>=0); //false
console.log('11a11'.search(pattern)>=0); //false
console.log('----------');
//New regex
var pattern = new RegExp("\[a-z]+", "i");
console.log('1111'.search(pattern)>=0); //false
console.log('11a11'.search(pattern)>=0); //true