2016-07-08 20 views
1

私はjavascriptでパターンにマッチさせようとしています。RegExpに一致する結果はありません

var pattern = "/^[a-z0-9]+$/i"; // This is should accept on alpha numeric characters. 
var reg = new RegExp(pattern); 
console.log("Should return false : "+reg.test("This $hould return false")); 
console.log("Should return true : "+reg.test("Thisshouldreturntrue")); 

私は偽の両方の結果取得しています、これを実行します。

以下は一例です。 私は何かが簡単でないと思っています。しかし、ちょっと混乱しました。

ありがとうございます。

答えて

2

RegExpコンストラクタを使用している場合は、スラッシュを使用する必要はありません。あなたのいずれかの使用は、正規表現を表すために、二重引用符なしスラッシュを囲むか、正規表現のコンストラクタに(通常は引用符で囲まれた)文字列を渡す:

var pattern = "^[a-z0-9]+$"; // This is should accept on alpha numeric characters. 
 
var reg = new RegExp(pattern, "i"); 
 
console.log("Should return false : "+reg.test("This $hould return false")); 
 
console.log("Should return true : "+reg.test("Thisshouldreturntrue"));

0

あなたのパターンが間違っています。ここでRegExpコンストラクタを使う必要はありません。また、大文字と小文字のどちらかのフラグを付けるか、範囲に大文字を追加する必要があります。

var reg = /^[a-zA-Z0-9]+$/; 
 
console.log("Should return false : "+reg.test("This $hould return false")); 
 
console.log("Should return true : "+reg.test("Thisshouldreturntrue"));

関連する問題