JavaScript String 物件例項深入研究
本文主要介紹並分析JavaScript中String物件的具體用法,以及和String物件相關的方法,方便開發者在JavaScript開發中更好地處理字串。
1. 介紹
String 物件,對字串進行操作,如:擷取一段子串、查詢字串/字元、轉換大小寫等等。
2. 定義方式
2.1 new String(Value) 建構函式:返回一個內容為Value的String物件
引數:
①value {String} :字串
返回值:
{String物件} 返回一個內容為Value的String物件
示例:
var demoStr = new String('abc'); console.log(typeof demoStr); // => object console.log(demoStr); // => abc
2.2 直接賦值(推薦)
示例:
var demoStr = 'abc'; console.log(typeof demoStr); // string console.log(demoStr); // => abc
3. 例項屬性
3.1 length :返回字串中的字元數
var s = 'abc'; console.log(s.length); // => 3 console.log('新年快樂'.length); // => 4 :一箇中文字元也計算為1個數量 console.log(''.length); // => 0 :空字串返回0
4. 例項方法
注意:字串的例項方法不會改變字串的本身,只返回操作後的結果。
4.1 charAt(index) :返回一個字串中指定位置的字元,編號從0開始,若傳入個不存在的數值,就返回空字串
引數:
①index {int} :位置索引,從0開始計算
返回值:
{string} 返回一個字串中指定位置的字元;若傳入個不存在的位置數值,返回一個空字串
示例:
var s = 'abc'; console.log(s.charAt(1)); // => b :返回位置為1的字元 console.log(s); // => 不影響原來的陣列 console.log(s.charAt(5)); // => '' :獲取一個不存在位置的字元,返回一個長度為0的空字串
4.2 charCodeAt(index) :返回一個字串中指定位置字元的Unicode編碼
引數:
①index {int} :位置索引,從0開始計算
返回值:
{number} 返回一個字串中指定位置字元的Unicode編碼;若傳入個不存在的位置數值,返回NaN
示例:
var s = 'abc'; console.log(s.charCodeAt(0)); // => 98 :字元b的Unicode編碼 console.log(s.charCodeAt(5)); // => NaN :獲取一個不存在位置的字元,返回NaN
4.3 concat(value1,value2 … valueN) :連線一個或多個字串,並返回連線後的字串
引數:
①value1,value2 … valueN {string} :一個或多個字串
返回值:
{string} 返回連線後的字串
示例:
var s = 'abc'; console.log(s.concat('d')); // => abcd console.log(s); // => abc :不影響原先的字串 console.log(s.concat('d', 'e')); // => abcde
4.4 indexOf(value , |startPosition ) :在例項中從前往後查詢一個字串或字元,並返回找到的位置(從0開始計數)。若未找到,返回-1
引數:
①value {string} :查詢的字串
②startPosition {int} 可選 :開始查詢的起始位置,預設從位置0開始查詢
返回值:
{int} 返回找到的位置(從0開始計數)。若未找到,返回-1
示例:
var s = 'abc'; console.log(s.indexOf('b')); // => 1 console.log(s.indexOf('d')); // => -1 :未找到 console.log(s.indexOf('b', 2)); // => -1 :從位置2(第3個字元處)開始查詢
4.5 lastIndexOf(value , |startPosition ) :在例項中從後往前開始查詢一個字串或字元,並返回找到的位置(從0開始計數)。若未找到,返回-1
引數:
①value {string} :查詢的字串
②startPosition {int} 可選 :開始查詢的起始位置,預設從最後開始查詢
返回值:
{int} 返回找到的位置(從0開始計數)。若未找到,返回-1
示例:
var s = 'abcabc'; console.log(s.lastIndexOf('a')); // => 3 :從後往前查詢 console.log(s.lastIndexOf('d')); // => -1 :未找到返回-1 console.log(s.lastIndexOf('a', 2)); // => 0 :從位置2(第3個字元處)開始往前查詢
4.6 localeCompare(value) :例項與引數進行比較,返回比較結果
引數:
①value {string} :需比較的字串
返回值:
0 :例項比引數大
1 :例項與引數相等
-1 :例項比引數小
示例:
var s='abc'; console.log(s.localeCompare('ab')); // => 1 :例項比引數大 console.log(s.localeCompare('abc')); // => 0 :例項與引數相等 console.log(s.localeCompare('abd')); // => -1 :例項比引數小
4.7 match(regexp) :使用正規表示式進行匹配查詢
引數:
①regexp {regexp} :正規表示式,eg:/\d+/
返回值:
根據正規表示式是否帶屬性’g',返回不同的結果;若沒匹配,就返回 {null}:
①正規表示式不帶屬性’g',執行一次匹配,返回{單個匹配}結果物件,物件包含以下屬性:
陣列序號:表示匹配結果,0為匹配文字,1為從做到右第1個圓括號匹配結果,2為第二個圓括號,依此類推
index屬性:表示匹配文字在匹配源的開始位置
input屬性:表示匹配源
②正規表示式帶屬性’g',執行全域性匹配,找到字串所有匹配物件,返回一個{字串陣列}:陣列元素包含string中的每一個匹配物件,不包含正規表示式括號內的字串,也不提供index和input屬性。
示例:
// 1.單個匹配 var s = 'a1b2c3d4'; var mc = s.match(/\d+/); // => 獲取第一個正則匹配的結果 if (mc != null) { console.log(mc.index); // => 1 :匹配結果在匹配源的起始位置 console.log(mc.input) // => a1b2c3d4 :匹配源 console.log(mc[0]); // => 1 :獲取匹配到的結果 } // 2.全域性匹配 var mcArray = s.match(/\d+/g); // => 獲取全部正則匹配的數字 if (mcArray != null) { for (var i = 0,len=mcArray.length; i < len; i++) { var mc=mcArray[i]; console.log(mc); // => 1,2,3,4 :獲取匹配到的結果 } } // 3.帶括號的匹配 s = 'a1b2c3d4'; mc = s.match(/[a-z]([1-9])/); // => 獲取第一個正則匹配的結果 if (mc != null) { console.log(mc.index); // => 0 :匹配結果在匹配源的起始位置 console.log(mc.input) // => a1b2c3d4 :匹配源 console.log(mc[0]); // => a1 :序號0表示匹配到的結果 console.log(mc[1]); // => 1 :序號1表示第一個括號內的子匹配結果 }
4.8 replace(regexp, replaceStr) :替換正規表示式匹配的子串,並返回替換後的字串
引數:
①regexp {regexp} :正規表示式。eg:/\d+/
②replaceStr {string | function} :
1)若是字串,表示替換的字串,匹配到字串都替換成此字串;
字串中的$字元有特殊的含義:
$1,$2 … $99 :表示①參從左到右圓括號的匹配子項
$& :表示整個①參匹配的子項
$$ :美元符號
2)若是函式,表示每個匹配結果都呼叫此函式,函式的唯一引數為匹配結果,並返回一個替換結果。
返回值:
{string} 返回一個替換後的字串
示例:
var oldStr = 'a1b2c3d4'; // 1.正則匹配到【所有】數字,替換成:','逗號 var newStr = oldStr.replace(/\d+/g, ','); console.log(newStr); // => a,b,c,d, // 2.正則匹配到【所有】數字,替換成:匹配結果 + ','逗號 newStr = oldStr.replace(/\d+/g, '$&,'); console.log(newStr); // => a1,b2,c3,d4, // 3.正則匹配到【所有】數字,每個匹配結果都呼叫函式,並返回替換後的結果 newStr = oldStr.replace(/\d+/g, function (word) { if (word % 2 == 0) { return '偶'; } return '奇'; }); console.log(newStr); // => a奇b偶c奇d偶
4.9 search(regexp) :返回查詢正規表示式第一個匹配的位置
引數:
①regexp {regexp} :正規表示式。eg:/\d+/
返回值:
{int} 返回第一個匹配的結果的位置;若沒找到匹配結果返回-1
示例:
console.log( 'abcd'.search(/\d+/) ); // => -1 :沒有找到數字 console.log( 'abcd1234'.search(/\d+/) ); // => 4 :位置序號為4,返回第一個數字的位置
4.10 slice(start, |end):返回從字串start位置到end前一個位置的子串
引數:
①start {int} :子串提取的開始位置索引(包括此位置的字元)。
若數字為負,表示從字串尾部開始計算。如:-1表示倒數一個字串,-2表示倒數第二個字元。
②end {int} 可選:子串提取的結束位置索引(不包括此位置的字元)。
若數字為負,表示從字串尾部開始計算。如:-1表示倒數一個字串,-2表示倒數第二個字元。
若省略此引數,返回從start位置到結束的所有字元。
注意:
子串的提取順序是從左到有,若start索引位置大於end索引位置,將返回一個空字串。
返回值:
{string} 返回從字串start位置到end前一個位置的子串。
示例:
var s = 'abcdefg'; console.log( s.slice(1) ); // bcdefg :省略end引數,結束位置為末尾 console.log( s.slice(1, 3) ); // bc :返回從位置序號1到位置序號2(end前一個位置)的子串 console.log( s.slice(-3) ); // efg :返回從倒數第三個開始到末尾的所有字元 console.log( s.slice(-3, -1) ); // ef :返回從倒數第三個開始到第二個(end前一個位置)的所有字元
4.11 split(delimiter, |arrayLength) :將字串按照某種分隔符切分成一個由字串組成的陣列並返回
引數:
①delimiter {regexp | string} :指定的分隔符,可以為正規表示式或字串。
②arrayLength {int} 可選 :分割陣列的長度。若省略,返回所有分割的子串。
注意:
若分隔符在字串的第一個或最後一個,將新增一個空字串到返回的陣列。
返回值:
{ string[] } 返回一個由字串組成的陣列。
示例:
console.log( 'a,b,c,d,e'.split(',') ); // => ["a", "b", "c", "d", "e"] console.log( ',a,b,c,d,e,'.split(',') ); // => ["", "a", "b", "c", "d", "e", ""] :分隔符在最前或最後面,會新增一個空字串 console.log( 'a,b,c,d,e'.split(',',3) ); // => ["a", "b", "c"] :返回前3個分割的子串 console.log( 'a1b2c3d4e'.split(/\d/) ); // => ["a", "b", "c", "d", "e"] :將數字來做為分隔符
4.12 substr(start, |wordLength):返回從字串start位置開始計算到wordLength個長度的子串
引數:
①start {int} :子串提取的開始位置索引(包括此位置的字元)。
若數字為負,表示從字串尾部開始計算。如:-1表示倒數一個字串,-2表示倒數第二個字元。
②wordLength {int} 可選 :提取字元的長度。若省略此引數,返回從start位置到結束的所有字元。
返回值:
{string} 返回提取的字串
示例:
ar s = 'abcdefg'; onsole.log( s.substr(0) ); // => abcdefg :省略第二個引數,返回從位置序號0開始,一直到最後的字元 onsole.log( s.substr(0, 3) ); // => abc :返回從位置序號0開始,計數3個字元 onsole.log( s.substr(2, 4) ); // => cdef :返回從位置序號2開始,計數4個字元 onsole.log( s.substr(-2, 3) ); // fg :返回從倒數第二個字串開始,計數3個(超過字元長度,就只返回可統計的字元)
4.12 substr(start, |wordLength):返回從字串start位置開始計算到wordLength個長度的子串
引數:
①start {int} :子串提取的開始位置索引(包括此位置的字元)。
若數字為負,表示從字串尾部開始計算。如:-1表示倒數一個字串,-2表示倒數第二個字元。
②wordLength {int} 可選 :提取字元的長度。若省略此引數,返回從start位置到結束的所有字元。
返回值:
{string} 返回提取的字串
示例:
ar s = 'abcdefg'; onsole.log( s.substr(0) ); // => abcdefg :省略第二個引數,返回從位置序號0開始,一直到最後的字元 onsole.log( s.substr(0, 3) ); // => abc :返回從位置序號0開始,計數3個字元 onsole.log( s.substr(2, 4) ); // => cdef :返回從位置序號2開始,計數4個字元 onsole.log( s.substr(-2, 3) ); // fg :返回從倒數第二個字串開始,計數3個(超過字元長度,就只返回可統計的字元)
4.13 substring(start, |end) :返回從字串start位置到end前一個位置的子串
引數:
①start {int} :子串提取的開始位置索引(包括此位置的字元)。數字不能為負數,若為負數按0來處理
②end {int} 可選:子串提取的結束位置索引(不包括此位置的字元)。數字不能為負數,若為負數按0來處理
返回值:
{string} 返回從字串start位置到end前一個位置的子串。
示例:
var s = 'abcdefg'; console.log( s.substring(0) ); // => abcdefg :省略end引數,返回從位置序號0開始,一直到最後的字元 console.log( s.substring(0, 3) ); // => abc :返回從位置序號0開始到位置序號2(②參的前一個)的字元 console.log( s.substring(2, 4) ); // => cd :返回從位置序號2開始到位置序號3(②參的前一個)的字元 console.log( s.substring(-3, 3) ); // abc :引數若為負,就按數字0來處理,所以此引數實際返回位置序號0到位置序號3的字元
4.14 toUpperCase() :將字串轉換為大寫並返回
4.15 toUpperCase() :將字串轉換為小寫並返回
4.16 trim() :移除字串開頭和結尾處的空白字元並返回
相關文章
- JavaScript 複習之例項物件與 new 命令JavaScript物件
- 深入研究Java StringJava
- JavaScript 複習之 String 物件JavaScript物件
- php例項化物件的例項方法PHP物件
- JavaScript 例項屬性JavaScript
- JavaScript 基礎(二) – 建立 function 物件的方法, String物件, Array物件JavaScriptFunction物件
- json例項練習 json物件JSON物件
- 例項物件和函式物件的區別物件函式
- JavaScript in運算子程式碼例項JavaScript
- 理清原型物件、 例項物件、建構函式原型物件函式
- JS函式,物件,例項方法,物件方法理解JS函式物件
- java中String類常用方法的使用與例項Java
- OC底層原理之例項、類物件、元類物件物件
- 理解Python中的類物件、例項物件、屬性、方法Python物件
- 解析JavaScript設計模型Iterator例項JavaScript模型
- JavaScript 阻止事件冒泡程式碼例項JavaScript事件
- JavaScript運動框架程式碼例項JavaScript框架
- JavaScript取餘數程式碼例項JavaScript
- JavaScript建立物件方法例項小結JavaScript物件
- JavaScript String()JavaScript
- JS 建立例項物件的四種模式JS物件模式
- 原生javascript開發計算器例項JavaScript
- JavaScript 表單驗證程式碼例項JavaScript
- JavaScript陣列合並程式碼例項JavaScript陣列
- JavaScript倒數計時程式碼例項JavaScript
- [譯]使用JavaScript建立WebAssembly模組例項JavaScriptWeb
- 私有建構函式的物件建立例項函式物件
- Java獲取Class物件的方式和例項化物件的方式Java物件
- JavaScript String 字串JavaScript字串
- javascript-StringJavaScript
- Python - 物件導向程式設計 - 什麼是 Python 類、類物件、例項物件Python物件程式設計
- JavaScript中常用的事件程式碼及例項JavaScript事件
- JavaScript刪除元素節點程式碼例項JavaScript
- [譯]在JavaScript中建立WebAssembly模組例項JavaScriptWeb
- Python - 物件導向程式設計 - 類變數、例項變數/類屬性、例項屬性Python物件程式設計變數
- JavaScript 字串(String) 大全JavaScript字串
- JavaScript String.raw()JavaScript
- javascript訂閱模式淺析和基礎例項JavaScript模式
- 前端學習程式碼例項-JavaScript阻止事件冒泡前端JavaScript事件