1. 程式人生 > >JavaScript String物件

JavaScript String物件

  本編主要介紹String 字串物件。

目錄

1. 介紹:闡述 String 物件的說明以及定義方式。

2. 例項屬性:介紹 String 物件的例項屬性: length。

3. 例項方法:介紹 String 物件的例項方法:charAt、charCodeAt、concat、indexOf等方法。

1. 介紹

1.1 說明

String 物件,對字串進行操作,如:擷取一段子串、查詢字串/字元、轉換大小寫等等。

1.2 定義方式

1.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

1.2.2 直接賦值(推薦)

示例:

var demoStr = 'abc';
console.log(typeof demoStr); // string
console.log(demoStr); // => abc

2. 例項屬性

2.1 length :返回字串中的字元數

var s = 'abc';
console.log(s.length); // => 3
console.log('新年快樂'.length); // => 4 :一箇中文字元也計算為1個數量
console.log(''.length); // => 0 :空字串返回0

3. 例項方法

注意:字串的例項方法不會改變字串的本身,只返回操作後的結果。

3.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的空字串

3.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

3.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

3.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個字元處)開始查詢

3.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個字元處)開始往前查詢

3.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 :例項比引數小

3.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 :獲取匹配到的結果
    }
}

// 2.帶括號的匹配
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表示第一個括號內的子匹配結果
}

3.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,

// 2.正則匹配到【所有】數字,每個匹配結果都呼叫函式,並返回替換後的結果
newStr = oldStr.replace(/\d+/g, function (word) {
    if (word % 2 == 0) {
        return '偶';
    }
    return '奇';
});
console.log(newStr); // => a奇b偶c奇d偶

3.9 search(regexp) :返回查詢正則表示式第一個匹配的位置

引數:

①regexp {regexp} :正則表示式。eg:/\d+/

返回值:

{int} 返回第一個匹配的結果的位置;若沒找到匹配結果返回-1

示例:

console.log( 'abcd'.search(/\d+/) ); // => -1 :沒有找到數字
console.log( 'abcd1234'.search(/\d+/) ); // => 4 :位置序號為4,返回第一個數字的位置

3.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前一個位置)的所有字元

3.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"] :將數字來做為分隔符

3.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個(超過字元長度,就只返回可統計的字元)

3.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的字元

3.14 toUpperCase() :將字串轉換為大寫並返回

3.15 toLowerCase() :將字串轉換為小寫並返回

3.16 trim() :移除字串開頭和結尾處的空白字元並返回

相關推薦

面試JavaScript String物件常用方法

length 返回字串的長度(字元數) 返回指定位置的字元,第一個字元位置為0 返回字串第一個字元的 Unicode 編碼。 用於連線兩個或多個字串。該方法沒有改變原有字串,但是會返回連線兩個或多個字串新字串。 可接受一個指定的 Unicode 值,

JS-JavaScript String 物件-string物件方法1:charAt()

1.charAt():可返回指定位置的字元。   1). 語法:string.charAt(index)  (index必需。表示字串中某個位置的數字,即字元在字串中的位置。)   2). 第一個字元位置為 0, 第二個字元位置為 1,以此類推.   3).

JavaScript String 物件例項深入研究

本文主要介紹並分析JavaScript中String物件的具體用法,以及和String物件相關的方法,方便開發者在JavaScript開發中更好地處理字串。 1. 介紹 String 物件,對字串進行操作,如:擷取一段子串、查詢字串/字元、轉換大小寫等等。 2. 定義方式

面試之JavaScript String物件常用方法

length 返回字串的長度(字元數) var str='Hello World!'; str.length; //12 charAt() 返回指定位置的字元,第一個字元位置為0 var str='Hello World!'; str.charAt(4);

JavaScript String 物件方法總結

String物件用於處理文字 一、String物件常用方法 1、concat():連線字串,注:使用‘+ 運算子來進行字串連線更簡便 2、charAt(index):返回指定位置的字元,如果引數 index 不在 0 與 string.length 之間,該方法

JavaScript String物件

  本編主要介紹String 字串物件。 目錄 1. 介紹:闡述 String 物件的說明以及定義方式。 2. 例項屬性:介紹 String 物件的例項屬性: length。 3. 例項方法:介紹 String 物件的例項方法:charAt、charCodeAt、concat、indexOf等方法。

JavaScript學習筆記:(String物件

javascript的string物件使用很方便,可以直接賦值: var str = 'hello world'; 但是在一些使用場景中,則需要使用下面的方法: var str =new String(); (1)length屬性:得出字串的長度: var str =

JavaScriptString物件常見方法及屬性

JavaScript String物件簡介 在JavaScript,基本資料型別有Number型、String型、Boolean型、Undefined型、Null型、Function型等。 String物件就是和基本資料型別中的String型別相對應的Jav

javascriptString物件(來自W3C)

String 物件是 String 原始型別的物件表示法,它是以下方式建立的: var oStringObject = new String("hello world"); String 物件的 valueOf() 方法和 toString() 方法都會返回 String

JavaScript--String對象】

分割 spa 屬性和方法 正則表達 nta 正則 ear lin ava JavaScript 字符串(String) 對象 String 對象屬性 屬性描述 constructor 對創建該對象的函數的引用 lenght 字符串的長度 prototype 允

Javascript-string-Array

clas break bre turn delete i+1 span spl 都是 1.得到數組裏重復的值 1 function getRepeat(ar){ 2 //數組排序 3 var ary = ar.sort(); 4 //創建裝

JavaScript String

.com cas 全部 第一個 font char 寫入 下標 AI 字符串的相關操作: var str = ‘xuanmo blog’; 查找 str.charAt(n);查找字符串下標對應的字符 str.charCodeAt(n);查找字符串對應下標的ASCII碼

JavaScript String 檢測字母出現個數

class sdh txt str 檢測 color nop position asn 1 <script> 2 var txt="ABCDEFGHIJKLMNOPQRSTUVWXYZvshjkdjlksdhbasndhbawnieoqawinsbdvhz

Javascript String檢查字母個數

log tel blog doc gho txt https script posit 1 <script> 2 var txt="ABCDEFGHIJKLMNOPQRSTUVWXYZvshjkdjlksdhbasndhbawnieoqawinsbdvhzohc

JavaScript 面向物件程式設計實現

JavaScript 面向物件程式設計實現 本文主要講述js面向物件的實現方式(繼承) 面向物件本來就是把某些問題(邏輯),用物件的方式描述,使得業務邏輯能更加清晰,提高維護性,降低實現複雜度。 面向物件的三大特徵:封裝,多型,繼承。(JavaScript 是沒有多型的特性的

JavaScript Window物件與使用者互動

前言:Window物件是開啟瀏覽器視窗,可以控制視窗的大小和位置、視窗彈出框、開啟和關閉視窗。控制視窗顯示位址列,工具欄。還可以控制是否過載網頁、返回上一個或下一個文件。 1、警告對話方塊 window.alert(str); 程式碼片段: <html> &l

String物件常量池特性對synchronized物件的影響

一 .什麼是String的常量池特性  對於字串物件有兩種建立方法,如下: 直接賦值法: String str1="直接賦值建立字串";  建立物件法: String str2=new String("建立物件來建立字串");  第一種方法是直接建

javascript 定義物件、方法和屬性的使用方法(prototype)

prototype 定義和用法 prototype 屬性使您有能力向物件新增屬性和方法。 語法 object.prototype = { 函式名 : function(){} } object.prototype.name=value javaSc

javascript面向物件程式設計--惰性載入函式(瀏覽器相容性處理)

因為各大瀏覽器所使用的JS引擎不同,所以在實現某一個功能時都或多或少的存在差異,導致在寫程式碼時要針對每一個功能給出相容瀏覽器的不同實現方式,這樣在執行程式碼時就會造成效能的損耗。所以就出現了惰性載入函式的概念。原理就是:當前瀏覽器第一次支援以該方法實現某功能,那麼在這個頁面執行期間會一直都支援該方

javascript面向物件程式設計--繼承--多重繼承+摻元類(多親繼承)

繼承一般包括 單向繼承 和 多重繼承   多重繼承:一個子類繼承多個超類 function A(x){this.x=x;} A.prototype.getx=function(){return  this.x;} function B(y){this.y=y;}