3.15.2010

[JavaScript] 字串處理 (String Operation)

其實自己本來就對JavaScript不甚熟悉,也只不過是因應工作上的需求而學習;學習之後,跟C比起來,就語法而言JavaScript就沒像C那麼地嚴謹。

譬如說,就資料型態而言,C就分為intshortlonglong longchar,以及針對字串的char *。在JavaScript裡則一律用var (variable,變數)來表示;而JavaScript裡也沒像C一樣有著複雜的指標 (pointer)觀念。

但是呢,無論是學習何種語言,字串上的處理,一定是常用到的。所以就寫下這篇網誌來記錄一下。

「Hello!! World!! 」─永遠是程式設計師的好朋友,就用這個範例來說明JavaScript在字串處理上各種常用函式的應用。



var strTemp = "Hello!! World!! ";
var strResult = "";

// 尋找字串,大小寫必需相符;回傳值為找到起始位址;沒找到則回傳-1
strResult = strTemp.search("o!! Wor");
alert(strResult); // 4
strResult = strTemp.search("O!! wOR");
alert(strResult); // -1

// 尋找字串內相符的字串,大小寫必需相符;回傳值為找到的該字串;沒找到則回傳null
strResult = strTemp.match("! Worl");
alert(strResult); // ! Worl
strResult = strTemp.match(" wORL");
alert(strResult); // null

// 取得字串長度
strResult = strTemp.length;
alert(strResult); // 16

// 由前往後找,尋找特定字串在某字串中的起始位址,第一個參數為要尋找的字串,第二個參數為開始尋找的位址;回傳值為找到起始位址;沒找到則回傳-1
strResult = strTemp.indexOf("ello!");
alert(strResult); // 1
strResult = strTemp.indexOf("ello", 2);
alert(strResult); // -1

// 與上一例相同,但由後往前找
strResult = strTemp.lastIndexOf("o!! W");
alert(strResult); // 4
strResult = strTemp.lastIndexOf("o!! W", 3);
alert(strResult); // -1

// 將字串轉為大、小寫
strResult = strTemp.toUpperCase();
alert(strResult); // HELLO!! WORLD!!
strResult = strTemp.toLowerCase();
alert(strResult); // hello!! world!!

// 回傳字串內某位址的字元;若該位址超出字串長度,則不回傳任何東西
strResult = strTemp.charAt(8);
alert(strResult); // W
strResult = strTemp.charAt(20);
alert(strResult); //

// 回傳字串內,某位址區間的字串;第一個參數為起始位址,第二個參數為結束位址
strResult = strTemp.substring(3, 9);
alert(strResult); // lo!! W

// 與上例類似;但第二個參數為要讀取的字串長度
strResult = strTemp.substr(3, 8);
alert(strResult); // lo!! Wor

// 字串取代;第一個參數為要被取代的字串,第二個參數為將要取代的字串;若第一個參數沒找到,則不作任何取代 (大小寫需相符)
strResult = strTemp.replace("World!", "ABCD")
alert(strResult); // Hello!! ABCD!
strResult = strTemp.replace("1234", "ABCD")
alert(strResult); // Hello!! World!!

// 組合字串
strResult = strTemp.concat("1234 ", "ABCD");
alert(strResult); // Hello!! World!! 1234 ABCD

// 切割字串;第一個參數為起始位址,第二個參數為結束位址
strResult = strTemp.slice(8, 11);
alert(strResult); // Wor
strResult = strTemp.slice(5);
alert(strResult); // !! World!!

// 分割字串....其實這個函式自己也不太會用.....@@
strResult = strTemp.split(""); // 預設值會把每個字母用','分割....
alert(strResult); // H,e,l,l,o,!,!, ,W,o,r,l,d,!,!,

參考網址:
http://miisoo.blogspot.com/2008/01/javascript-string-operations.html

分享一個介紹JavaScript的網站:JavaScript 程式簡介

沒有留言:

張貼留言