天天看點

js 字元串對象

字元串對象

1. 定義方式

var str = new String("stringObject");
        var str1 = 'string';
        console.log(typeof (str));//object
        console.log(str1)//string
           
js 字元串對象
字元串對象基本與字元串沒有差別,寫成字元串對象,隻是為了更好的操作字元串唯一的差別就是用typeof判斷類型的時候字元串顯示的是’string’而字元串對象為’object’

2. length屬性

var str = new String("stringObject");
   console.log(str.length);
   str.length=10;//不報錯,但修改無效
   console.log(str.length);
           
js 字元串對象

length的寫法為字元串名.length根據上面例子的結果,我們可以知道字元串的length屬性與數組的length屬性是不同的,字元串的length是不可改變的。也就是說是隻讀的。

注意:空格或符号都算是一個元素,都是算在長度中的。

3. 字元的通路

var str = new String("stringObject");
        console.log(str[0]);//字元串[索引]
        console.log(str[13])//如果超出範圍 輸出 undefined
        console.log(str.charAt(0))//charAt方法
        console.log(str.charAt(13))//如果超出範圍 輸出空字元串
           
js 字元串對象

字元串對象通路有兩種方式,一種為字元串名[索引],另一種為字元串名.charAt(索引)

字元串的索引起始位置與數組一緻,都是從0開始。

兩種方式隻有1點不同,那就是在對參數超出索引範圍的輸出上,字元串名[索引]的輸出為undefined,而charAt方法的輸出值為空字元串

4. 字元的查找

字元串對象查找的兩個方法

第一個方法:字元串名.indexOf(字元串名,開始位置)

功能:從前向後在字元串中查找一個字元串

傳回值:如果找到傳回索引,找不到傳回-1

var str = new String("stringObjectstr");
console.log(str.indexOf('str',3))//在str中找'str'由于起始位置為索引=3,是以它找的後面的'str'
console.log(str.indexOf('AD'));//找不到AD是以輸出為-1
           
js 字元串對象

第二個方法:字元串名.lastIndexOf(字元串名,開始位置)

功能:從後向前在字元串中查找一個字元串

傳回值:如果找到傳回索引,找不到傳回-1

var str = new String("stringObjectstr");
        console.log(str.lastIndexOf('str'))//從後向前查
        console.log(str.lastIndexOf('str',3))//根據結果可知3為從索引為3的位置開始向前查找
        console.log(str.lastIndexOf('AD'));//找不到是以輸出-1
           
js 字元串對象
注意:lastIndexOf方法的起始位置也是索引值的位置,例如起始位置為3的話,就是從索引值為3的元素開始向後查找,包括3.也就是包括起始位置

5. 字元的替換

替換的方法:字元串名.replace(‘字元串’,‘要替換的字元串’)
var str = new String("stringObjectstr哈哈 哈哈");
        str.replace('哈哈', 'haha');//字元串對象一旦建立就不能修改
        console.log(str);
        var a = str.replace('哈哈', 'haha');//是以,我們把它賦給了一個新的值
        console.log(a);
           
js 字元串對象

我們可以看到,我們首先運作replace方法,然後輸出str字元串,但是str字元串沒有任何改變。這裡并不能說我們錯了,因為

字元串對象一旦建立就不能修改,跟字元串對象的length屬性一樣

注意:第一個參數為字元串是隻能替換第一個比對的字元

6. 字元串的截取

字元串截取的三個方法

第一個方法:字元串名.substring(開始位置,結束位置)

功能:截取字元串

傳回值:傳回新的字元串

var str = new String("stringObjectstr哈哈 哈哈"); 
        var a=str.substring(0,3);//從0截取到3,但不包括3
        var b=str.substring(3,0);//3>0 3和0 會互換
        var c=str.substring(-1,5);//-1會被當成0
        console.log(a)
        console.log(b)
        console.log(c)
           

substring是從開始位置截取到結束位置,但不包括結束位置

substring如果開始位置的索引值比結束位置的索引值大,那麼,開始位置的值會與結束位置的互換

substring的參數如果為負數的話,會被當成0;

第二個方法:字元串名.substr(開始位置,截取個數)

功能:從開始位置截取一定個數的字元串,預設的話,一直截取到最後

傳回值:傳回新的字元串

var str = new String("stringObjectstr哈哈 哈哈a"); 
        var a=str.substr(0,3);//從0開始,截取3個值
        var b=str.substr(0);//截取個數沒有的話,預設截取到最後
        var c=str.substr(21);//開始位置超出字元串對象的長度是為空字元串
        var d=str.substr(-1);//從後向前截取1個值
        console.log(a)
        console.log(b)
        console.log(c)
        console.log(d)
           
js 字元串對象

substr是從開始位置截取個數

substr如果開始位置超出字元串對象的長度是為空字元

substr截取個數沒有的話,預設截取到最後

substr參數為負數時從後向前截取個數

第三個方法:字元串名.slice(開始位置,結束位置)

功能:截取字元串

傳回值:傳回新的字元串

var str = new String("stringObjectstr哈哈 哈哈a"); 
        var a=str.slice(0,3);//從0截取到3,但不包括3
        var b=str.slice(3,0);//3>0 傳回空字元串
        var c=str.slice(0,30);//沒有結束位置是,預設截取到最後
        var d=str.slice(-1);//從後向前截取1個值
        console.log(a)
        console.log(b)
        console.log(c)
        console.log(d)
           
js 字元串對象

slice是從開始位置截取到結束位置,但不包括結束位置

slice如果開始位置的索引值比結束位置的索引值大,那麼,會傳回空字元串

slice結束位置超出範圍,按預設值處理

substr參數為負數時從後向前截取個數

6. 字元串的分割

var 變量名=字元串名.split(分割符)

功能:截取字元串

傳回值:将字元串按照分隔符進行切分,切分後的

每一部分,都是數組的一部分

//字元串分割
        var str='aaa,bbb,ccc'
        var array=str.split(',');
        console.log(array)
           
js 字元串對象