本文介紹一下JavaScript中的字符串對象
####?創(chuàng)建字符串
```
var?str?=?new?String("我愛我的祖國");
var?str?=?"我愛我的祖國"
var?str?='我愛我的祖國'
```
-?特點:雙引號字符串可以包含單引號,單引號里面可以包含雙引號
-?注意:用new創(chuàng)建的兩個字符串即使值一樣也不相等
####?字符串搜索
1.indexOf()方法
-?indexOf()?方法可返回某個指定的字符串值在字符串中首次出現(xiàn)的位置。如果沒有找到匹配的字符串則返回?-1。
-?indexOf()方法有兩個參數(shù),第一個參數(shù)規(guī)定需檢索的字符串值,必需。
第二個參數(shù)規(guī)定在字符串中開始檢索的位置。它的合法取值是?0?到?string?Object.length?-?1。如省略該參數(shù),則將從字符串的首字符開始檢索,可選。
```
var?str?=?'我是字符串';
str.indexOf(“字符”);????//?2
str.indexOf('字符',3);??//?-1
```
2.lastIndexOf()?方法
-?lastIndexOf()?方法可返回一個指定的字符串值最后出現(xiàn)的位置,如果指定第二個參數(shù)?start,則在一個字符串中的指定位置從后向前搜索。
```
var?str?=?'hello?world';
console.log(str.lastIndexOf('l'));??????//?1
```
-?注意:?該方法將從后向前檢索字符串,但返回是從起始位置?(0)?開始計算子字符串最后出現(xiàn)的位置。?看它是否含有字符串。
開始檢索的位置在字符串的?start?處或字符串的結(jié)尾(沒有指定?start?時)。
####?charAt()?方法
-?charAt()?方法返回下標(biāo)對應(yīng)的字符串
```
var?str?=?'hello';
console.log(str.charAt(2));????//?l
```
####?replace()?方法
-?replace()?方法用于在字符串中用一些字符替換另一些字符,或替換一個與正則表達(dá)式匹配的子串。
```
var?str?=?'hello?world';
var?str2?=?str.replace('world','china');
console.log(str2)?????//??hello?china
```
####?length屬性返回字符串的長度
####?字符串截取
1.substring()
-?substring()?方法用于提取字符串中介于兩個指定下標(biāo)之間的字符。
-?substring()?方法返回的子串包括?開始?處的字符,但不包括?結(jié)束?處的字符。
-?substring()?方法有兩個參數(shù),第一個參數(shù)是一個非負(fù)的整數(shù),規(guī)定要提取的子串的第一個字符在?string?Object?中的位置,必需。
第二個參數(shù)是一個非負(fù)的整數(shù),比要提取的子串的最后一個字符在?string?Object?中的位置多?1,可選。
```
var?str="Hello?world!";
document.write(str.substring(3)+"
");?????//?lo?world!
document.write(str.substring(3,7));????????//?lo?w
```
2.substr()
-?substr()?方法可在字符串中抽取從?開始?下標(biāo)開始的指定數(shù)目的字符。
-?substr()?方法有兩個參數(shù),第一個參數(shù)是要抽取的子串的起始下標(biāo)。必須是數(shù)值。如果是負(fù)數(shù),那么該參數(shù)聲明從字符串的尾部開始算起的位置。也就是說,-1?指字符串中最后一個字符,-2?指倒數(shù)第二個字符,以此類推。必需。
第二個參數(shù)是子串中的字符數(shù)。必須是數(shù)值。如果省略了該參數(shù),那么返回從?stringObject?的開始位置到結(jié)尾的字串,可選。
```
var?str="Hello?world!";
var?n=str.substr(2);????//?llo?world!
```