使用正则表达式识别表达式中的[]

时间:2012-01-07 09:11:19

标签: javascript regex

如何获取此字符串以获得完全匹配的结果

会话[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>

结果现在是用户名

三江源。

2 个答案:

答案 0 :(得分: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));

答案 1 :(得分: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/

你实际上不必逃避],因为当[出现在{{1}}之前它只是一个预期的正则表达式控制字符,虽然它也不会有害于逃避它。