1
我在jquery中使用了一個帶有replace
的正則表達式,它可以找到定義中的所有單詞,並用鏈接到該單詞頁面的自定義鏈接替換它們。我的問題是,在我的一些定義中定義了一個<a>
鏈接。忽略jQuery中的字符串用字邊界替換正則表達式
實施例正確的輸入
This is a definition of a word in my database <a href="http://www.example.com">[source]</a>.
實施例正確的輸出
This is a <a href="/dictionary/word/definition">definition</a> of a <a href="/dictionary/word/word">word</a> in my <a href="/dictionary/word/database">database</a> <a href="http://www.example.com">[source]</a>.
我使用的停止詞的陣列,因此不會自定義鏈路適用於這些類型的單詞的類似
var stopwords = ["a", "about", "above", "across", "after",...
問題是當我檢查頁面的HTML時,它會像這樣在定義中更改該鏈接的href
。
This is a <a href="/dictionary/word/definition">definition</a> of a <a href="/dictionary/word/word">word</a> in my <a href="/dictionary/word/database">database</a> <a href="/dictionary/word/source">[source]</a>.
它正在改變http://www.example.com
到/dictionary/word/souce
我不想做的事。有沒有什麼辦法可以保留這個[源]鏈接,但對所有其他單詞都是正常工作的?
$('.definition').html(function() {
return $(this).text().replace(/\b[\w-]+\b/g, function(m){
if ($.inArray(m.toLowerCase(), stopwords) === -1) {
return ' <a href="/dictionary/word/' + m.toLowerCase() + '/">' + m + '</a>';
} else {
return " "+m;
}
});
})
什麼是停用詞 –
我在詢問你的名單中的單詞 –
我做了編輯 –