2012-01-07 98 views
-3

如何得到这个字符串表达式识别[]给我确切的匹配结果使用正则表达式

会议[username_or_email]

表达

<html> 
<body> 

<script type="text/javascript"> 

var str="session[username_or_email]"; 
var patt1=/ID|un|name|login_username|userid|username|user|Email|uname|usr|log|email|mail|nick|CUST|account|wpName1|textbox|pw|session[username_or_email]/i; 
document.write(str.match(patt1)); 

</script> 

</body> 
</html> 

现在的结果是用户名

谢谢。

回答

1

刚逃出[\[所以它不被视为一个特殊的正则表达式控制字符,而只是一个普通的字符来搜索。

var str="session[username_or_email]"; 
var patt1=/ID|un|name|login_username|userid|username|user|Email|uname|usr|log|email|mail|nick|CUST|account|wpName1|textbox|pw|session\[username_or_email]/i; 
document.write(str.match(patt1)); 

你可以看到它在这里工作:http://jsfiddle.net/jfriend00/CuWKV/

你实际上并没有逃脱],因为它仅仅是一个预期的正则表达式控制字符时[以前它虽然它不伤害来也逃避它。

+0

真棒...你是一个时代的朋友:D – debuggerpk 2012-01-07 09:55:47

1

请注意逃脱的\ [ - 我也将想要的字符串移到开头,因为它也包含用户名 - 这可能也可能不是您需要的,但您应该考虑它。

var str="session[username_or_email]"; 
var patt1=/session\[username_or_email\]|ID|un|name|login_username|userid|username|user|Email|uname|usr|log|email|mail|nick|CUST|account|wpName1|textbox|pw/i; 
document.write(str.match(patt1));