我有这个正则表达式从锚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
行为?
答案 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");