Javascript 将/../和RegEx与exec一起使用时会产生不同的结果

Javascript 将/../和RegEx与exec一起使用时会产生不同的结果,javascript,regex,Javascript,Regex,这有什么不同 var addressValue = "http://partners.webmasterplan.com/click.asp?ref=755891&site=8883&type=text&tnb=2&diurl=http://www.redcoon.de/B440080-Tefal-FV-9640_B%C3%BCgeleisen"; var reAffilinet = new RegExp("diurl=[(http|https):\/\/]*w*

这有什么不同

var addressValue = "http://partners.webmasterplan.com/click.asp?ref=755891&site=8883&type=text&tnb=2&diurl=http://www.redcoon.de/B440080-Tefal-FV-9640_B%C3%BCgeleisen";
var reAffilinet = new RegExp("diurl=[(http|https):\/\/]*w*\.*([a-z]*)");
reAffilinet.exec(addressValue); 
// ["diurl=http://www.redcoon.de/B440080-Tefal-FV-9640_B%C3%BCgeleisen", ""]
由此:

var addressValue = "http://partners.webmasterplan.com/click.asp?ref=755891&site=8883&type=text&tnb=2&diurl=http://www.redcoon.de/B440080-Tefal-FV-9640_B%C3%BCgeleisen";
var reAffilinet = /diurl=[(http|https):\/\/]*w*\.*([a-z]*)/;
reAffilinet.exec(addressValue); 
// ["diurl=http://www.redcoon.de/B440080-Tefal-FV-9640_B%C3%BCgeleisen", ""]

据我所知:它们应该是相同的…?

正则表达式文字的一个便利属性是,您不必转义
\

如果要使用RegExp构造函数,则必须进行此转义才能定义:


当您在带引号的字符串中编写模式时,必须转义反斜杠<代码>\.=>
\\.
(由于没有更多分隔符,因此不要跳过斜杠。)
var reAffilinet = new RegExp("diurl=[(http|https):\\/\\/]*w*\\.*([a-z]*)");