javascript - 使用/.../和正则表达式与 exec 时的不同结果

标签 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*\.*([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/

相关文章:

javascript - JS中如何获取匹配字符串的索引

c# - 在 C# 中解析自定义文件

javascript - Node.js 上的 Ecmascript 6 支持

javascript - $.getJSON() 到 $.ajax()

javascript - grunt 问题 - 警告 : Task "ngAnnotate:dist" failed. 使用 --force 继续

javascript - document.activeElement 的 jQuery 替代品

javascript - 在 XML 文件中添加新联系人时如何生成/写入 ID(字母数字)

regex - 如何从传递给regex::Regex::replace的闭包中冒出一个错误?

javascript - 如何从字符串中去除具有属性的 HTML 标签?

javascript - 如何使用字符串文字生成正则表达式?