2个正则表达式字符串之间的差异

时间:2013-03-18 16:48:22

标签: regex

这两个人在做什么有什么不同? THX

 var m = document.referrer.match(/\&cd=([\d]*)/);

var m = document.referrer.match(/cd=(.*?)&/);

哪一个更有效率?

1 个答案:

答案 0 :(得分:3)

/\&cd=([\d]*)/ - 匹配任何以“& cd =”开头的字符串,后跟任意零个或多个十进制数字。第一个捕获组是十进制数字。

/cd=(.*)&/ - 匹配任何以“cd =”开头的字符串,后跟零个或多个字符,包括第一个“&”。第一个捕获组是“cd =”和“&”之间的所有字符。

它们相似但不相同。您应该使用哪一个取决于您的确切需求。从你的评论来看,听起来你想要使用:

var m = document.referrer.match(/[?&]cd=(\d+)/);