http://www.javashuo.com/article/p-rfoifhvi-c.htmlhtml
關於字符串分割
一、slice(start,end);
關於這個方法,必定要搞懂四個關鍵點:正則表達式
(1)截取字符串時不包括下標爲end的元素。數組
(2)end是可選參數,沒有時,默認從start到結束的全部字符串。ui
(3)String.slice與Array.slice區別。編碼
(4)參數爲負數時,是如何處理的。spa
其中第3點其實就是在JavaScript中字符串和數組都具備這個方法,它們的返回結果形式不同,一個是一段字符串,一個是一段淺複製後的數組。另外三個點接着往下看你就會明白。3d
二、substr(start,length);code
關於這個方法,也須要搞懂幾個關鍵點:regexp
(1)第二個參數是子串中的字符數,必須是數值。能夠沒有。htm
(2)參數爲負數時如何進行處理。
(3)最重要一點來自官網說明,以下所示:
**ECMAscript 沒有對該方法進行標準化,所以反對使用它。**
因爲substr() 的參數指定的是子串的開始位置和長度,所以它能夠替代 substring() 和 slice() 來使用。
三、substring(start,end);
和slice相似,關於這個方法,一樣須要搞懂幾個關鍵點:
(1)返回的字符串中不包括 end處的字符。
(2)參數爲負數時如何進行處理。
(3)若是參數 start 與 stop 相等,那麼該方法返回的就是一個空串(即長度爲 0 的字符串)。
(4)若是 start 比 stop 大,那麼該方法在提取子串以前會先交換這兩個參數。
這個方法的做用一樣可使用slice方法來替代。
區別和使用:
(一):都接收兩個參數,slice和substring接收的是起始位置和結束位置(注意:不包括結束位置),而substr接收的則是起始位置和所要返回的字符串長度。
看一下控制檯運行出來的結果,其中slice/substring都是從0開始截取3到6位置但不包括6位置的字符串」lo 「,對比之下,substr截取3位置以後的6個字符串」lo wor」。
(二):須要注意substring是以兩個參數中較小一個做爲起始位置,較大的參數做爲結束位置。
上面這個(6,3)會默認變成(3,6)將小的當起始位置來處理。
(三):參數爲負數時如何解析。
(我認爲這種負數的狀況就應該在標準中禁止掉,參數中有負數時直接報錯就行,可如今居然能爲負數,那咱們只有兩條出路:1,避免在code的時候出現它;2,就是今天咱們要作的,完全搞懂它。一次性消滅掉)
slice:將字符串的長度與對應的負數相加,結果做爲參數。
substr:只會將第一個參數與字符串長度相加後的結果做爲第一個參數(第一個參數爲負數)。
substring:直接將負參數直接轉成0。
1. charAt() 返回指定位置的字符。
str.charAt(index)
index 爲必須參數,類型爲number(0到str.length-1之間,不然該方法返回 空串)
另外:str.charAt()即不帶參數和str.charAt(NaN)均返回字符串的第一個字符
2. charCodeAt() 返回在指定的位置的字符的 Unicode 編碼。
str.charCodeAt(index)
index 爲必須參數,類型爲number(0到str.length-1之間,不然該方法返回 NaN)
3. concat() 用於鏈接兩個或多個字符串。
var a = "hello",b = "kitty",c = "!";
a.concat(b,c) // 功能和 「+」 拼接沒啥兩樣
4. fromCharCode() 接受一個指定的 Unicode 值,而後返回一個字符串。
String.fromCharCode(unicode1,unicode2,...,nuicodeX) 該方法是 String 的靜態方法,語法應該是 String.fromCharCode()。
5. indexOf() 方法 返回指定字符串在字符串中首次出現的位置。匹配不到則返回-1。
str.indexOf(searchStr,startIndex)
searchStr必選,表示須要匹配的字符串值;
startIndex可選,取值範圍0到str.length-1,省略則默認首字符開始檢索。
6. lastIndexOf() 返回指定字符串值最後出現的位置,在一個字符串中的指定位置從後向前搜索。
str.lastIndexOf(searchStr,startIndex)
searchStr必選,表示須要匹配的字符串值;
startIndex可選,取值範圍0到str.length-1,省略則默認尾字符開始檢索。
7. match() 在字符串內檢索指定的值,或找到一個或多個正則表達式的匹配。匹配不到返回Null。
str.match(regExp)
8. replace() 用於在字符串中用一些字符替換另外一些字符,或替換一個與正則表達式匹配的子串。
str.replace(regexp/substrOld,replaceStrNew)
9. search() 用於檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串。無匹配返回-1。
str.search(regexp/substr) 返回值:str中第一個與正則或字符串相匹配的子串的起始位置。
10. slice() 提取字符串的某個部分,並以新的字符串返回被提取的部分。
str.slice(startIndex,endIndex) 返回值包含startIndex不包含endIndex
忽略endIndex則返回包括startIndex到原字符串結尾的字符串
另外參數還有負數反向用法
11. split() 用於把一個字符串分割成字符串數組。
str.split()
12. substr() 方法可在字符串中抽取從 start 下標開始的指定數目的字符。
str.substr(startIndex,length) 忽略length則返回從startIndex到字符串尾字符
13. substring() 方法用於提取字符串中介於兩個指定下標之間的字符。
str.substring(startIndex,endIndex) 忽略endIndex則返回從startIndex到字符串尾字符
14. toLocaleUpperCase() / toLocaleLowerCase() 用於字符串轉換大小寫(與下面的方法方法僅在某些外國小語種有差異)
15. toUpperCase() / toLowerCase() 用於字符串轉換大小寫