Javascript正则表达式/x修饰符

Javascript正则表达式/x修饰符,javascript,regex,Javascript,Regex,我使用这个正则表达式从锚HTML标记中提取引用URL和文本: /<a(?:.*?)href=['"](.+)['"](?:.*)>(.+?)<\/a>/x 这将支持锚标记内的任何其他属性 有没有关于如何完成/x行为的想法?var str=''; var str = '<a href="http://google.com" rel="nofollow">Google</a>'; var myregexp = /<a.*?href=["'](.

我使用这个正则表达式从锚HTML标记中提取引用URL和文本:

/<a(?:.*?)href=['"](.+)['"](?:.*)>(.+?)<\/a>/x
这将支持锚标记内的任何其他属性

有没有关于如何完成
/x
行为的想法?

var str='';
var str = '<a href="http://google.com" rel="nofollow">Google</a>';
var myregexp = /<a.*?href=["'](.*?)["'].*?>(.*?)<\/a>/g;
var result = str.replace(myregexp, "Hello my name is $2 and my Homepage is $1");

var myregexp=/

为什么需要它?在这里它似乎是多余的。我不知道/x会如何改变这里的任何东西(你希望它做什么?)我认为这是一个糟糕的用法示例。为了简单起见,我需要提取这两个值,URL和名称使用JavaScript中的正则表达式从HTML中提取属性肯定是人们犯的最大错误之一。Perl和正则表达式的
/x
修饰符允许在表达式中使用空格,如果不转义,则会被忽略,它允许你在表达式中使用注释,这两种注释都使表达式更容易阅读和理解;该功能也称为
PCRE\u EXTENDED
。ECMAScript不支持该内置函数,但如果您需要它,可以使用模拟它的函数:
new jsx.regexp.regexp(“…”,“x”)
。另请参见。您为什么将
[“']
更改为
[“|”]
?现在它将匹配双引号、管道或单引号。我很确定那不是OP想要的
var str = '<a href="http://google.com" rel="nofollow">Google</a>';
var myregexp = /<a.*?href=["'](.*?)["'].*?>(.*?)<\/a>/g;
var result = str.replace(myregexp, "Hello my name is $2 and my Homepage is $1");