標籤:
一、String 對象介紹
String對象,和其他語言一樣,用於對字串的處理。
字串在實際的開發中用的估計是最多的,所以對字串的使用熟練程度,也會影響項目開發的速度。
文法很簡單:var str=new String(“strValue”);但我們基本都是用直接賦值的方式,即 var str=“strValue”;
說明:
雖然上面兩種方法都可以建立我們想要的字串,但是直接賦值的方式建立的String對象與用new運算子建立的String對象 處理上不同。所有字串共用公用的全域字串對象。如果為字串添加屬性,則它對所有字串標準都是可以使用的。
看著上面那句話可能很多人都暈乎乎的,不理解是什麼意思,下面給個例子說明下可能就會很好理解了.
(1)直接賦值方法
Codevar str1,str2;str1="這是一個字串";str2="這也是一個字串";str1.test=10;
上面str1設定了一個test屬性,那麼str2也被定義了test屬性,其實在str1以後定義的所有字串都被定義了test屬性。
(2)new 建立方法
Codevar str1,str2;str1=new String("這是一個字串");str2=new Stirng("這是另一個字串");str1.test=10;
在這種情況下str2 則不定義test屬性。因為每個用new String()聲明的String對象都有其自己的一群組成員。
二、String對象常用的方法
(1)charAt(index) 方法,返回指定索引位置的字元。其中index的值為0到字串長度減1之間,若超出這個範圍,那麼將返回Null 字元。
Codefunction charAt01(str,index){ var s=str.charAt(index); return s;}
( 2 )concat(String)方法,返回串連後的字串,返回的結果可以是兩個字串或者更多的字串串連的結果 。即str=str1+str2+str3+…”"+strN;如果其中有不是字串的參數,那麼在串連之前會轉換為字串。
Codefunction concat01(str1,str2){ return str1.concat(str2)}
(3) indexOf()方法,返回字串中第一次出現要尋找字元的位置,有效值為0到被尋找字串的長度減1.該方法返回的是一個整數值,若返回-1,則表示沒有找到字串。
Codefunction indexOf01(str){ var str1="abcdefg"; return str1.indexOf(str);}
indexOf()方法其實還有一個參數,那就是開始尋找的位置,即寫法為str1.indexOf(str2,startIndex),如果startIndex為負數,那麼會被認為是0,如果startIndex大於str1的長度,那麼會被認為是最大的尋找索引。
(4)lastIndexOf(),返回被尋找字串中最後出現的位置。指出 String 對象內子字串的開始位置。如果沒有找到子字串,則返回 -1。
Codefunction latIndexOf01(str){ var s="abcdefg"; return s.lastIndexOf(str);}
同樣lastIndexOf()方法也有一個參數,也是開始尋找的位置,即寫法為str1.lastIndexOf(str2,startIndex),如果startIndex為負數,那麼會被認為是0,如果startIndex大於str1的長度,那麼會被認為是最大的尋找索引。
值得說明的是:indexOf是從左往右尋找,lastIndexOf是從右往左尋找,否則兩者就不必要同時存在了。
(5)replace方法,返回根據Regex進行文字替換後的字串的複製,文法為str.replace(rgExp, replaceText),
str
必選項。要執行該替換的 String 對象或字串文字。該字串不會被 replace 方法修改。
rgExp
必選項。為包含Regex模式或可用標誌的Regex對象。也可以是 String 對象或文字。如果 rgExp 不是Regex對象,它將被轉換為字串,並進行精確的尋找;不要嘗試將字串轉化為Regex。
replaceText
必選項。是一個String 對象或字串文字,對於stringObj 中每個匹配 rgExp 中的位置都用該對象所包含的文字加以替換。在 Jscript 5.5 或更新版本中,replaceText 參數也可以是返回替換文本的函數。
Codefunction ReplaceDemo(){ var r, re; var ss = "The man hit the ball with the bat.\n"; ss += "while the fielder caught the ball with the glove."; re = /The/g; r = ss.replace(re, "A"); return(r); }
(6) subString方法,返回指定位置的字串,文法為subString(startIndex,endIndex);startIndex開始位置,endIndex結束位置,索引是從0開始的。
說明:
substring 方法將返回一個包含從 start 到最後(不包含 end )的子字串的字串。
substring 方法使用 start 和 end 兩者中的較小值作為子字串的起始點。例如, strvar.substring(0, 3) 和 strvar.substring(3, 0) 將返回相同的子字串。
如果 start 或 end 為 NaN 或者負數,那麼將其替換為0。
子字串的長度等於 start 和 end 之差的絕對值。例如,在 strvar.substring(0, 3) 和 strvar.substring(3, 0) 返回的子字串的的長度是 3。
Codefunction SubstringDemo(){ var ss; var s = "The rain in Spain falls mainly in the plain.."; ss = s.substring(12, 17); return(ss); }
當然String對象還有其他的方法,但是那些方法基本很少用在這裡就不說了,大家可以參考說明文檔。
需要補充的是:在開發中很少單獨使用一個方法,而是很多方法結合一起使用,例如一個新聞網頁網址為http://www.hello.com?id=1 ,我需要得到網址,不需要前面的http和後面的id,那麼我們就可以這樣做:
Codefunction test(){ var str="http://www.hello.com?id=1"; return str.subString(str.indexOf("//")+1,str.lastIndexOf("?")-1);}
以上的列子都是在插入代碼塊中填寫,由於時間關係還未驗證,如果有錯誤,請指出,謝謝
JavaScript String對象