JavaScript經常使用的字符串處理方法

介紹


本文主要介紹JS的字符串函數, 以下圖所示。另外,字符串還有三個性質constructor、length和prototype。javascript

1. charAt和charCodeAt

charAt(x): 返回字符串中x位置的字符,下標從 0 開始。java

charCodeAt(x): 返回字符串中x位置處字符的unicode值。正則表達式

2. fromCharcode

fromCharcode(c1,c2): 轉換一組Unicode值轉換爲字符。數組

console.log(String.fromCharCode(85,67,108,111,117,100))
//output: UCloud
複製代碼

3. concat

concat(v1,v2..) 轉換一組Unicode值轉換爲字符。bash

4. indexOf和lastIndexOf

indexOf(substr, [start]): indexOf方法搜索並(若是找到)返回字符串中搜索到的字符或子字符串的索引。若是沒有找到,則返回-1。Start是一個可選參數,指定字符串中開始搜索的位置,默認值爲0。函數

lastIndexOf(substr, [start]): lastIndexOf() 方法返回指定文本在字符串中最後一次出現的索引, 若是未找到,則返回-1。「Start」是一個可選參數,指定字符串中開始搜索的位置, 默認值爲string.length-1。ui

5. match、replace和search

match(regexp): 根據正則表達式在字符串中搜索匹配項。若是沒有找到匹配項,則返回一個信息數組或null。spa

var intRegex = /[0-9 -()+]+$/;
var myNumber = '999';
var isInt = myNumber.match(intRegex);
console.log(isInt);
//output: 999
 
var myString = '999 JS Coders';
var isInt = myString.match(intRegex);
console.log(isInt);
//output: null
複製代碼

replace(regexp/substr, replacetext): 用於在字符串中用一些字符替換另外一些字符,或替換一個與正則表達式匹配的子串。prototype

var myString = 'erina JavaScript Coders';
console.log(myString.replace(/JavaScript/i, "java"));
//output: erina java Coders
 
var myString = 'erina JavaScript Coders';
console.log(myString.replace(new RegExp( "erina", "gi" ), "The"));
//output: The JavaScript Coders
console.log(myString.replace(new RegExp(/erina/gi ), "bingbing"));
//output: bingbing JavaScript Coders
複製代碼

search(regexp): 用於檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串,若是找到,返回與 regexp 相匹配的子串的起始位置,不然返回 -1。code

var intRegex = /[0-9 -()+]+$/;
 
var myNumber = '999';
var isInt = myNumber.search(intRegex);
console.log(isInt);
//output: 0
複製代碼

6. slice、split、substr和substring

方法 描述 返回值
slice(start, end) start(必需) -起始位置;end(可選)-結束位置,若未指定,則默認到末尾全部元素 返回 [start,end)之間的元素
substring(start, end) start(必需) -起始位置;end(可選)-結束位置,若未指定,則默認到末尾全部元素 返回 [start,end)之間的元素
substr(start, length) start(必需)-起始位置;length(可選)-所截取的元素的個數,若未指定,則默認到末尾 返回[start, start+length)之間的元素

當傳的參數都爲正數的時候,substring和substr沒有區別。當參數爲負數時,三個函數的行爲不盡相同。
slice() - 將傳入的負參數與字符串長度相加;
substring() - 把全部的負值置爲0;
substr() - 將負的第一個參數與字符串長度相加,負的第二個參數置爲0。

參數爲正數

var str = 'hello world';
console.log(str.slice(3)); // lo world
console.log(str.substring(3));// lo world
console.log(str.substr(3));// lo world

console.log(str.slice(3, 7)); // lo w
console.log(str.substring(3, 7)); // lo w
console.log(str.substr(3, 7));//lo worl
複製代碼

參數爲負數

var str = 'hello world';
console.log(str.slice(-3)); // rld
console.log(str.substring(-3));// hello world
console.log(str.substr(-3));// rld

console.log(str.slice(3, -4)); // lo w
console.log(str.substring(3, -4)); // hel
console.log(str.substr(3, -4));// ""(空字符串)
複製代碼

以上實例的計算過程以下
slice(-3) => slice(8)
substring(-3) => substring(0)
substr(-3) => substr(8)
slice(3, -4) => slice(3, 7)
substring(3, -4) => substring(3, 0) =>substring(0, 3)
substr(3, -4) => substr(3, 0)

7. toLowerCase、toLocaleLowerCase、toUpperCase和toLocaleUpperCase

toLowerCase()和toUpperCase()是兩個經典的方法,分別把字符串轉爲小寫和大寫。 而toLocaleLowerCase()和toLocaleUpperCase()方法則是針對特定地區的實現。
對有些地區來講,針對地區的方法與其通用方法獲得的結果相同,但少數語言(如土耳其語言)會爲Unicode大小寫轉換應用特殊的規則,這時候就必須使用針對地區的方法來保證明現正確的轉換。

8. includes

includes(): 方法用於檢查字符串是否包含指定的字符串或字符。

var mystring = "Hello, welcome to shanghai";
var n = mystring.includes("shanghai");
//output: True
複製代碼

9. startsWith和endsWith

startsWith()和endsWith()函數分別檢查字符串是否以指定的字符串或字符開始或者結束。

var mystr = "List of javascript functions";
var isEnd = mystr.endsWith("functions");
//output: True
var isStart = mystr.startsWith("List");
// output: True
複製代碼

10. repeat

repeat() : 構造並返回一個新字符串,該字符串包含被鏈接在一塊兒的指定數量的字符串的副本。

var string = "Welcome to Qindao";
string.repeat(2);
//output: Welcome to Qindao Welcome to Qindao
複製代碼

11. toString和valueOf

valueOf() : 方法返回一個String對象的原始值(primitive value),該值等同於String.prototype.toString()。
toString()和valueOf()的主要不一樣點在於,toString()返回的是字符串,而valueOf()返回的是原對象

12. trim

trim(): 方法會從一個字符串的兩端刪除空白字符。在這個上下文中的空白字符是全部的空白字符 (space, tab, no-break space 等) 以及全部行終止符字符(如 LF,CR)

var str = " Hello Erina! ";
str.trim();
output: Hello Erina!
複製代碼
相關文章
相關標籤/搜索