为什么会有所不同?
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", ""]
据我了解:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions它们应该是相同的...?
最佳答案
正则表达式文字的一个方便属性是您不必转义 \
。
如果您想使用 RegExp 构造函数,则必须进行转义才能定义 string literal :
var reAffilinet = new RegExp("diurl=[(http|https):\\/\\/]*w*\\.*([a-z]*)");
关于javascript - 使用/.../和正则表达式与 exec 时的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34684903/