Javascript正则表达式/ x修饰符

时间:2014-04-22 16:40:20

标签: javascript regex

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

/<a(?:.*?)href=['"](.+)['"](?:.*)>(.+?)<\/a>/x

但是我注意到/x修饰符在Javascript中不起作用。

我的意图是做以下事情:

var str = '<a href="http://google.com" rel="nofollow">Google</a>';
var msg = str.replace(/<a(?:.*?)href=['"](.+)['"](?:.*)>(.+?)<\/a>/x, function ($0, $1){
    return 'Hello my name is ' + $1 + 'and my Homepage is: ' + $0; 
});

console.log(msg);
// should print 'Hello my name is Google and my Homepage is http://google.com'

这将支持锚标记内的任何其他属性。

如何实现/x行为?

1 个答案:

答案 0 :(得分:1)

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");

http://jsfiddle.net/tuga/97c9x/3/