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

identifying [] in an expression using regular expression

本文关键字:表达式 正则表达式 识别      更新时间:2023-09-26

如何获取此字符串以获得准确的匹配结果

会话[用户名_or_电子邮件]

表达式

<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>

现在的结果是用户名

谢谢。

只需用'[转义[,这样它就不会被视为一个特殊的正则表达式控制字符,而只是一个要搜索的普通字符。

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/

实际上,您不必转义],因为当[出现在它之前时,它只是一个预期的regex控制字符,尽管转义它也没有害处。

请注意转义的''[-我也把想要的字符串移到了开头,因为它也包含用户名-这可能是你需要的,也可能不是,但你应该考虑一下。

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));