2013-05-18 66 views
2

我想知道如何使用Javascript來完成以下操作。用#符號將文本轉換爲javascript中的鏈接

假設我有一個像下面

var test = '#test is a #cool #place'; 

文字,我想下面

<a href="abc.html?q=test">#test</a> is a <a href="abc.html?q=cool">#cool</a> <a href="abc.html?q=place">#place</a> 

我將如何做呢?

+0

im confused .... –

+0

這是可行的,但有點麻煩JS。如果您正在處理大量此類轉換,請考慮客戶端模板引擎,如[Jade](http://jade-lang.com)或[Handlebars](http://handlebarsjs.com)。 –

+0

這應該是一個評論imo。 – Qtax

回答

0

我個人很喜歡這更好:

stringToMatch.replace(/(<a[^>]*)?#(\w+)(?!\w)(?!.*?<\/a>)/g, 
    function($0, $1, $2) { 
     return $1 ? $0 : '<a href="'+ window.location +'?q=' + $2 + '">#' + $2 + '</a>'; 
    } 
)); 

這將匹配一切,除了各個環節。看到這個example

5

嘗試replace()

var test = '#test is a #cool #place'; 
var html = test.replace(/#(\w+)/g, '<a href="abc.html?q=$1">#$1</a>') 
0
test = test.replace(/#([^ ]+)/g, '<a href="abc.html?q=$1">#$1</a>'); 
相關問題