2016-07-13 6 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

おそらく '/ [-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; if(!(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

関連する問題