JS字串操作之增刪改查

前端王睿發表於2018-03-07

之前寫過一篇文章叫JS陣列操作之增刪改查,今天我就用同樣的方式簡單介紹一下JS字串操作中常用函式的用法。

一、增

1. concat()

可以傳任何個數的引數,用於字串的拼接,返回連線後的字串,而原字串不受影響。例如:

var str1 = `Hello`, str2 = ` World`, str3 = `!`;
console.log(str1.concat(str2));    // "Hello World"
console.log(str1.concat(str2,str3));    // "Hello World!"
console.log(str1);    // "Hello"

2. “+”號

與concat()功能相同,同樣是用於字串的拼接,例如上面例子可以改成:

var str1 = `Hello`, str2 = ` World`, str3 = `!`;
console.log(str1+str2);    // "Hello World"
console.log(str1+str2+str3);    // "Hello World!"
console.log(str1);    // "Hello"

可以看出,使用“+”號拼接字串既方便又直觀,所以也是最常用的一種方式。

二、刪

1. 裁剪“三劍客”

① substr()第二個引數是裁剪長度,只要為負,裁剪結果必定是空字串
② 不管如何裁剪,均不影響原字串
③ 當引數為負,slice加總長,substring則歸零,substr一加總長一歸零。

詳情請戳→JavaScript字串“三劍客”

2. 刪空格

① trim()

與jQuery中的$.trim()方法功能是一樣的,用於刪除字串前後所有空格,然後返回結果,而原字串保持不變。例如:

var str = ` Hello World     `;
console.log(str.trim());   //  "Hello World"
console.log(str);   //  " Hello World     "

② trimLeft()和trimRight()

這兩個方法分別用於刪除字串的左空格和右空格,用法與trim()是一樣的,例如:

var str = ` Hello World     `;
console.log(str.trimLeft());    //  "Hello World     "
console.log(str.trimRight());    //  " Hello World"

三、改

1. 大小寫轉換

① toLowerCase()和toLocaleLowerCase()

這兩個方法都可以將字串中的大寫字母全部轉換為小寫字母,只不過與 toLowerCase() 不同的是,toLocaleLowerCase() 方法會按照本地方式把字串轉換為大寫。只有幾種語言(如土耳其語)具有地方特有的大小寫對映,其他大多情況該方法的返回值與 toLowerCase() 是一樣的。例如:

var str = `Hello World`;
console.log(str.toLowerCase());  // "hello world"
console.log(str.toLocaleLowerCase());  // "hello world"

② toUpperCase()和toLocaleUpperCase()

這兩個方法都可以將字串中的小寫字母全部轉換為大寫字母,用法與toLowerCase()toLocaleLowerCase()相同,例如:

var str = `Hello World`;
console.log(str.toUpperCase());  // "HELLO WORLD"
console.log(str.toLocaleUpperCase());  // "HELLO WORLD"

2. 模式匹配

① replace()

stringObject.replace(regexp/substr,replacement)

詳情請戳→簡述test()、match()、replace()和search()的用法

② split()

① split() 可以傳字串或正則,也能傳第二引數
② split() 的逆操作是 join()
③ 字串和陣列可以自由轉換,所以相當於它們所具備的很多方法是可以通用的

詳情請戳→JavaScript字串的分割

四、查

1. 字元方法

主要有兩個: charAt()charCodeAt()charAt()是通過索引查詢字串中的某個字元,而charCodeAt()其實就相當於在charAt()查詢到字元之後再將其轉換為相應的字元編碼。例如:

console.log(str.charAt(2));  // "l"
console.log(str.charCodeAt(2));  // 108

其實查詢字元還有一種更加簡單直接的方法,就是與陣列類似的方括號表示法,例如:

console.log(str[2]);  // "l"

2. 位置方法

charAt()正好相反,位置方法是通過某個字串來查詢相應的位置索引,主要有兩個: indexOf()lastIndexOf(),分別為正向查詢和反向查詢,例如:

var str = `Hello World`;
console.log(str.indexOf(`l`));    //  2
console.log(str.lastIndexOf(`l`));    //  9

除此之外,這兩個方法還能傳入第二個引數,表示從字串中的哪個位置開始查詢,例如:

var str = `Hello World`;
console.log(str.indexOf(`l`,3));     //  3
console.log(str.lastIndexOf(`l`,8));    //  3

可以看出,這兩個方法的用法與陣列操作中同名的兩個方法的用法是一樣的。

3. 模式匹配

① match()

stringObject.match(searchvalue)
stringObject.match(regexp)

② search()

stringObject.search(searchvalue)
stringObject.search(regexp)

詳情請戳→簡述test()、match()、replace()和search()的用法


相關文章