原文連接:http://www.feeldesignstudio.com/2013/09/native-javascript-object-properties-and-methods-stringjavascript
length 屬性可返回字符串中的字符數目。java
length 是根據字符串的UTF-16編碼來獲取長度的,空字符串長度爲0。length 不可修改。正則表達式
charAt() 方法可返回指定位置的字符。注意,JavaScript 並無一種有別於字符串類型的字符數據類型,因此返回的字符是長度爲 1 的字符串。數組
stringObject.charAt(index)瀏覽器
參數index是必需的。表示字符串中某個位置的數字,即字符在字符串中的下標。字符串中第一個字符的下標是 0。若是參數 index 不在 0 與 string.length 之間,該方法將返回一個空字符串。jsp
注意:charAt() 方法對於一些非 BMP(Basic-Multilingual-Plane) 字符支持會有問題,參考:MDN函數
charCodeAt() 方法可返回指定位置的字符的 Unicode 編碼。這個返回值是 0 – 65535 之間的整數。
方法 charCodeAt() 與 charAt() 方法執行的操做類似,只不過前者返回的是位於指定位置的字符的編碼,然後者返回的是字符子串。編碼
stringObject.charCodeAt(index)spa
參數index是可選的。表示字符串中某個位置的數字,即字符在字符串中的下標。字符串中第一個字符的下標是 0。若是 index 是負數,或大於等於字符串的長度,則 charCodeAt() 返回 NaN。index爲空時默認爲0。code
Unicode 編碼的範圍是 0 到 1,114,111。前128個Unicode 編碼和ASCII字符編碼匹配。charCodeAt() 方法返回的值老是小於65536,由於更高值的字符會成對出現,須要用charCodeAt(i)和charCodeAt(i+1)同時檢索。
concat() 方法用於鏈接兩個或多個字符串。
stringObject.concat(stringX, stringX, …, stringX)
參數stringX是必需的。是將被鏈接爲一個字符串的一個或多個字符串對象。
concat() 方法將把它的全部參數轉換成字符串,而後按順序鏈接到字符串 stringObject 的尾部,並返回鏈接後的字符串。請注意,stringObject 自己並無被更改。
注意,強烈建議使用 」 + 」 運算符來進行字符串的鏈接,來替代這個方法,效率也更高,參考:concat vs + vs join。
indexOf() 方法可返回某個指定的字符串值在字符串中首次出現的位置。
stringObject.indexOf(searchvalue, fromindex)
參數searchvalue是必需的,規定需檢索的字符串值。參數fromindex是可選的整數參數。規定在字符串中開始檢索的位置。它的合法取值是 0 到 stringObject.length – 1。如省略該參數,則將從字符串的首字符開始檢索。
該方法將從頭至尾地檢索字符串 stringObject,看它是否含有子串 searchvalue。開始檢索的位置在字符串的 fromindex 處或字符串的開頭(沒有指定 fromindex 時)。若是找到一個 searchvalue,則返回 searchvalue 的第一次出現的位置。stringObject 中的字符位置是從 0 開始的。
注意:indexOf() 方法對大小寫敏感!若是要檢索的字符串值沒有出現,則該方法返回 -1。
lastIndexOf() 方法可返回一個指定的字符串值最後出現的位置,在一個字符串中的指定位置從後向前搜索。
lastIndexOf() 和 indexOf() 參數和使用方法一致,只不過是從後向前搜索。
用本地特定的順序來比較兩個字符串。
stringObject.localeCompare(target)
參數target是必需的,要以本地特定的順序與 stringObject 進行比較的字符串。
返回比較結果的數字。若是 stringObject 小於 target,則 localeCompare() 返回小於 0 的數。若是 stringObject 大於 target,則該方法返回大於 0 的數。若是兩個字符串相等,或根據本地排序規則沒有區別,該方法返回 0。
把 < 和 > 運算符應用到字符串時,它們只用字符的 Unicode 編碼比較字符串,而不考慮當地的排序規則。以這種方法生成的順序不必定是正確的。例如,在西班牙語中,其中字符 「ch」 一般做爲出如今字母 「c」 和 「d」 之間的字符來排序。localeCompare() 方法提供的比較字符串的方法,考慮了默認的本地排序規則。
localeCompare()在某些高級瀏覽器中的參數還支持locales 和 options,參考下面的代碼和 MDN:
match() 方法可在字符串內檢索指定的值,或找到一個或多個正則表達式的匹配。
該方法相似 indexOf() 和 lastIndexOf(),可是它返回指定的值,而不是字符串的位置。
stringObject.match(regexp)
參數regexp能夠是字符串,也能夠是正則表達式 RegExp 對象。
返回存放匹配結果的數組。該數組的內容依賴於 regexp 是否具備全局標誌 g。
若是 regexp 沒有標誌 g,那麼 match() 方法就只能在 stringObject 中執行一次匹配。若是沒有找到任何匹配的文本, match() 將返回 null。不然,它將返回一個數組,其中存放了與它找到的匹配文本有關的信息。該數組的第 0 個元素存放的是匹配文本,而其他的元素存放的是與正則表達式的子表達式匹配的文本。除了這些常規的數組元素以外,返回的數組還含有兩個對象屬性。index 屬性聲明的是匹配文本的起始字符在 stringObject 中的位置,input 屬性聲明的是對 stringObject 的引用。
若是 regexp 具備標誌 g,則 match() 方法將執行全局檢索,找到 stringObject 中的全部匹配子字符串。若沒有找到任何匹配的子串,則返回 null。若是找到了一個或多個匹配子串,則返回一個數組。不過全局匹配返回的數組的內容與前者大不相同,它的數組元素中存放的是 stringObject 中全部的匹配子串,並且也沒有 index 屬性或 input 屬性。
沒有標誌g,調用 stringObject.match(regexp) 和調用 regexp.exec(stringObject) 的結果相同。在全局檢索模式下,match() 即不提供與子表達式匹配的文本的信息,也不聲明每一個匹配子串的位置。若是須要這些全局檢索的信息,可使用 RegExp.exec()。
注意:若是須要知道一個字符串是否匹配一個正則表達式,使用 regexp.test(string);若是隻想一次匹配,使用 regexp.exec(string) 代替 string.match(regexp)。
replace() 方法用於在字符串中用一些字符替換另外一些字符,或替換一個與正則表達式匹配的子串。
stringObject.replace(regexp/substr, replacement)
參數regexp/substr是必需的。規定子字符串或要替換的模式的 RegExp 對象。若是該值是一個字符串,則將它做爲要檢索的直接量文本模式,而不是首先被轉換爲 RegExp 對象。參數replacement是必需的。是一個字符串值。規定了替換文本或生成替換文本的函數。
方法會返回一個新的字符串,是用 replacement 替換了 regexp 的第一次匹配或全部匹配以後獲得的。
字符串 stringObject 的 replace() 方法執行的是查找並替換的操做。它將在 stringObject 中查找與 regexp 相匹配的子字符串,而後用 replacement 來替換這些子串。若是 regexp 具備全局標誌 g,那麼 replace() 方法將替換全部匹配的子串。不然,它只替換第一個匹配子串。
replacement 能夠是字符串,也能夠是函數。若是它是字符串,那麼每一個匹配都將由字符串替換。可是 replacement 中的 $ 字符具備特定的含義。以下所示,它說明從模式匹配獲得的字符串將用於替換:
replacement 能夠是函數,在這種狀況下,每一個匹配都調用該函數,它返回的字符串將做爲替換文本使用。該函數的第一個參數是匹配模式的字符串。接下來的參數是與模式中的子表達式匹配的字符串,能夠有 0 個或多個這樣的參數。接下來的參數是一個整數,聲明瞭匹配在 stringObject 中出現的位置。最後一個參數是 stringObject 自己。
search() 方法用於檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串。
stringObject.search(regexp)
參數regexp能夠是須要在 stringObject 中檢索的子串,也能夠是須要檢索的 RegExp 對象。
返回stringObject 中第一個與 regexp 相匹配的子串的起始位置。若是沒有找到任何匹配的子串,則返回 -1。
注意:search() 方法不執行全局匹配,它將忽略標誌 g。它同時忽略 regexp 的 lastIndex 屬性,而且老是從字符串的開始進行檢索,這意味着它老是返回 stringObject 的第一個匹配的位置。
若是隻是想知道是否有匹配的字符串,使用search()和使用test()方法差很少。若是想獲得更多的信息,可使用match()和exec()方法,可是效率會低。
slice() 方法可提取字符串的某個部分,並以新的字符串返回被提取的部分。
stringObject.slice(start, end)
參數start是要抽取的片段的起始下標。若是是負數,則該參數規定的是從字符串的尾部開始算起的位置。也就是說,-1 指字符串的最後一個字符,-2 指倒數第二個字符,以此類推。
參數end是緊接着要抽取的片斷的結尾的下標。若未指定此參數,則要提取的子串包括 start 到原字符串結尾的字符串。若是該參數是負數,那麼它規定的是從字符串的尾部開始算起的位置。
方法會返回一個新的字符串。包括字符串 stringObject 從 start 開始(包括 start)到 end 結束(不包括 end)爲止的全部字符。
注意:String 對象的方法 slice()、substring() 和 substr() 均可返回字符串的指定部分。強烈建議在全部場合都使用 slice() 方法。
不推薦使用,建議使用slice()替代。
不推薦使用,建議使用slice()替代。
不推薦使用,只在土耳其語等少數語種中有用,建議使用toLowerCase()替代。
不推薦使用,只在土耳其語等少數語種中有用,建議使用toUpperCase()替代。
toLowerCase() 方法用於把字符串轉換爲小寫。
toUpperCase() 方法用於把字符串轉換爲大寫。
String對象還有不少用於HTML 標籤的方法:anchor()、big()、blink()、bold()、fixed()、fontcolor()、fontsize()、italics()、link()、small()、strike()、sub()、sup()。他們主要是對String對象進行HTML格式化處理,如今已經不多有人會應用到了,不推薦使用。參見:演示代碼