2012-01-07 39 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));