2014-04-22 121 views
-1

我有這樣的正則表達式來提取引用URL和錨HTML標記文本:的JavaScript正則表達式/ X修改

/<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

你爲什麼需要它?這似乎是多餘的。 – BoltClock

+0

我沒有看到/ x會在這裏改變什麼(你期望它做什麼?) – njzk2

+0

這是一個糟糕的使用示例,我相信。保持簡單我需要提取這2個值,URL和名稱 – jonathanwiesel

回答

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/

+0

爲什麼你把'['']'改成'[「|']'?現在它將匹配雙引號,管道或單引號。我很確定這不是OP想要的。 ;) –

+0

@AlanMoore我的壞!已經改變,tks :) –