2011-03-02 102 views
0

我試圖將下面的php表達式轉換成JavaScript,但是我遇到了一件麻煩事。將php正則表達式轉換爲JavaScript

preg_replace('/'.preg_quote($keyword).'/i', "<span>$0</span>", $string) 

這裏發生的是我可以重用找到的子字符串與正確的「大小寫字母」。它很難解釋我的意思,但讓我舉個例子:

如果用戶輸入瑞典語,那麼這個字符串全部是小寫字母。但結果是這個詞寫成瑞典,所以我希望它保持原樣。

可以在php中使用匹配的值$ 0來做到這一點,就像你在php表達式中看到的一樣。

在JavaScript我至今是:

var highlighted_sub = location_sub_name[i].replace(regexp_highlight,"<span class='loc_keyword'>" + location_keyword + "</span>"); 

這取代了原來的結果與來自用戶的輸入,所以我得到瑞典的所有小寫字母作爲用戶輸入他們,當我真正希望案例能夠像他們一樣。

+0

可能重複[JavaScript的jQuery的正則表達式替換(http://stackoverflow.com/questions/5172816/ JavaScript的jQuery的正則表達式替換) – phihag 2011-03-02 21:06:11

回答

1

你可以在JavaScript中做同樣的事情;唯一的例外是「完整匹配」反向引用是$&而不是$0。其餘的,$1$9,雖然工作完全一樣。嘗試一下在瀏覽器的地址欄中輸入:

javascript: document.write('foobar'.replace(/(f)[o]/g, ' $1 $& ')); 

這個頁面有詳細信息:中http://www.regular-expressions.info/refreplace.html

相關問題