要點一(難度: 50)
在javascript 中,replace 不像很多程式語言能一次取代多次(預設只會取代一次),需要透過正規表達試才能提供取代掉某篇文章中某個字的效果,假設字串happy我們想轉變為haPPy,有兩種寫法:
- str.replace(/p/g,"P");
- str.replace(new RegExp("p", "g"), "P")
這裡使用正規表達是特殊命令"g",代表「所有」。
要點二(難度: 70)
假設你透過搜尋引擎造某個網頁,可是那個網頁很大張,你找不到你要的內容,那你會怎樣?
我都會利用Google 的頁庫存檔,再次檢視那張網頁,因為「頁庫存檔」通常都會好心的將你的關鍵字用別的顏色標注。
其實透過replace 也可以將特殊字改變顏色,我現在來簡單實做這樣一個貼心功能,我把它寫城一個網頁:
[範例網頁]←你可以點選檢視原始碼來看看我js怎麼寫,這範例我邊google 邊寫,寫了一小時...所以我覺得難度有90。
要點三(難度: 80)
除了將正規表達是發揮的淋漓盡致外,我們還可以自定函數,處理字串內容。以下是我在大陸網站找到的一個例子,這邊將他稍微修改一下,程式碼如下:
<script language="javascript">
var str="我今年22歲,我弟今年19歲,我奶奶今年82歲(不過她在天上)"
function yearsOld($1)
{
var gyear=(new Date()).getYear()-parseInt($1)+1;
return $1+"("+gyear+"年出生)";
}
var reg=new RegExp("(d+)歲","g");
var newstr=str.replace(reg, yearsOld);
document.write(str);
// 輸出 "我今年22歲,我弟今年19歲,
// 我奶奶今年82歲(不過她在天上)"
document.write(newstr);
// 輸出 "我今年22歲(1986年出生),我弟今年19歲(1989年出生),
// 我奶奶今年82歲(1926年出生)(不過她在天上)"
</script>
超酷的吧,不過其實我是1985年生的 :-)
參考資料:http://tech.ddvip.com/2007-10/119331548136528_4.html
讀者回應 ( 2 意見 )
訂閱張貼留言 (Atom)
很棒的文章喔~~~
詳細的解釋了javascript 的replace
To 匿名者:
感謝你的支持,讓我有動力繼續寫技術文章!!
我這兩天預計發表正規表達式的相關程是設計,希望對大家有幫助^^
張貼留言
如果沒有帳戶,建議使用「名稱/網址」留言喔^^