RegEx string.match不起作用

时间:2012-02-23 17:19:56

标签: javascript regex

这是我的代码,但由于某些原因它没有用,任何人都有线索?

var val="My1name"
var exp = new RegExp("((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,20})"); 
if(!val.match(exp)){      
   alert("No match")
} else {
   alert("Match")
}

2 个答案:

答案 0 :(得分:2)

从字符串构建时,您需要转义转义字符...

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

答案 1 :(得分:0)

你想这样做吗?

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