如何仅为文本创建regExp模式

时间:2016-07-13 16:43:51

标签: javascript

如何仅为文本创建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"); 
    } 
}; 

1 个答案:

答案 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