2016-07-13 132 views
0

如何創建僅用於文本的RegEx模式。我有一些代碼,但我不明白爲什麼它不起作用。如何創建僅用於文本的regExp模式

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"); 
    } 
}; 
+2

你大概的意思'/ [A-Z] +/i'。你是怎麼把它和'\\ a-z'混淆的? – Xufox

+0

document.myform.firstname.onchange = function(){ var pattern = new RegExp(「\\ [a-z] +」,「i」); var isValid = this.value.search(pattern)> = 0;如果(!(isValid)){ alert(「error」); } else { alert(「fine」); } }; –

+1

通過編輯您的問題提供更多詳細信息,而不是將未格式化的代碼放入註釋中。 – Xufox

回答

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