2012-02-23 2 views
0

これは私のコードですが、何らかの理由で誰かが手がかりを得られませんでしたか?RegExp string.matchが機能しません

あなたは、文字列から構築する際にエスケープ文字をエスケープする必要が
var val="My1name" 
var exp = new RegExp("((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,20})"); 
if(!val.match(exp)){  
    alert("No match") 
} else { 
    alert("Match") 
} 
+1

正規表現が定数になる場合は、正規表現を作成するためにリテラル文法を使用します。 {0} * {az})。{6,20})/ ' –

+0

私は正しいですか、あなたですいくつかのキャラクターを逃れなければならない。しかし、あなたが本当に新しいRegExp(...)方法を必要としないなら、代わりに/.../を使わないのはなぜですか? – mfeineis

+0

**「うまくいかない」とはどういう意味ですか?**「問題は理解できません」という記述は不適切です。あなたはそれを試したとき何が起こったのですか?間違った結果を得ましたか? *結果は得られませんでしたか?結果が間違っていた場合、何が間違っていたのですか?代わりにあなたは何を期待していましたか? *正しい結果が得られましたか?もしそうなら、彼らは何でしたか?私たちに推測させてはいけません。 –

答えて

2

...

var exp = new RegExp("((?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{6,20})"); 
//-------------------------^ 
0

あなたはこれをやろうとしていますか?

var val = "My1name"; 
var exp = /((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,20})/; 
if(!val.match(exp)){  
    alert("No match"); 
} else { 
    alert("Match"); 
} 
関連する問題