1. 程式人生 > >JavaScript String 字串型別

JavaScript String 字串型別

1. String物件屬性

屬性 描述
length 字串的長度

示例程式碼:

    var str ="this is a string";
    console.log(str.length);
    //16

2. String物件方法

String 型別的方法有很多,其中有一部分涉及到文字的樣式變化,根據HTML規範,頁面的結構、樣式及行為應當分離。當我們想要改變文字的樣式時,應該引用相應的CSS樣式,而是通過JS去實現,因此本文對這部分的JS方法不作詳細介紹。

屬性 描述
charAt() 返回在指定位置的字元。
charCodeAt() 返回在指定的位置的字元的 Unicode 編碼。
fromCharCode() 從字元編碼建立一個字串。
concat() 連線字串。
indexOf() 檢索字串。
lastIndexOf() 從後向前搜尋字串。
localeCompare() 用本地特定的順序來比較兩個字串。
match() 找到一個或多個正則表示式的匹配。
replace() 替換與正則表示式匹配的子串。
search() 檢索與正則表示式相匹配的值。
slice() 提取字串的片斷,並在新的字串中返回被提取的部分。
substr() 從起始索引號提取字串中指定數目的字元。
substring() 提取字串中兩個指定的索引號之間的字元。
split() 把字串分割為字串陣列。
toLocaleLowerCase() 把字串轉換為小寫。
toLocaleUpperCase() 把字串轉換為大寫。
toLowerCase() 把字串轉換為小寫。
toUpperCase() 把字串轉換為大寫。
toSource() 代表物件的原始碼。
toString() 返回字串。
valueOf() 返回某個字串物件的原始值。
- -
涉及樣式調整或頁面結構的方法
anchor() 建立 HTML 錨。
big() 用大號字型顯示字串。
blink() 顯示閃動字串。
bold() 使用粗體顯示字串。
fixed() 以打字機文字顯示字串。
fontcolor() 使用指定的顏色來顯示字串。
fontsize() 使用指定的尺寸來顯示字串。
italics() 使用斜體顯示字串。
link() 將字串顯示為連結。
small() 使用小字號來顯示字串。
strike() 使用刪除線來顯示字串。
sub() 把字串顯示為下標。
sup() 把字串顯示為上標。

程式碼示例:

var str = "hello";
console.log(str.charAt(0));
//h  
console.log(str.charAt(10));
//如果下標超過字串的長度,則返回空字串
console.log(str.charCodeAt(0));
//104   “h”的Unicode編碼
console.log(str.charCodeAt(str.length));
//NaN   當下標超過字串長度時
console.log(String.fromCharCode(97,98,99,100));
//abcd   這個方法與charCodeAt()方法相對應,接收一個Unicode值,返回字元結果。與其他方法不同的是這
//是String物件的一個靜態方法,因此使用的方式為String.fromCharCode(num),
//而不是strObj.fromCharCode(num)
console.log(str.concat(" world"));
//hello word
console.log(str);
//hello     str本身的值並沒有改變
console.log(str.concat(['a','b']));
//helloa,b  會先將陣列字串化,然後再進行拼接
console.log(str.indexOf("l"));
//2    返回指定字元在字串中首次出現的下標(str中包含兩個“l”)
console.log(str.indexOf("z"));
//-1   若該字元不存在則返回“-1”
console.log(str.indexOf("l"));
//3   
var a="a",b="b";
console.log(a.localCompare(b));
//-1  若兩個字元相等則返回“0”,若a大於b則返回“1”


2.1 字元查詢與正則匹配 match()、search()、replace()

這三個方法都可用於正則匹配,所接受的引數即可以是一個指定的字串,也可以是一個正則表示式。

var mail= "[email protected]";
console.log(mail.match(mail.match(/@\w+./)));
//@gmail.
var str = "hello world";
console.log(str.replace(/\b\w+\b/g,function(word){
    return word.substring(0,1).toUpperCase()+word.substring(1);
}));
//Hello World;
console.log(str.search(/world/));
//6

2.2 字串擷取 slice(star,end)、substr(star,length)、substring(star,end)

slice與substring一樣都是用來擷取字串,第一個引數代表起始位置(包含),第二個引數代表結束位置(不包含),唯一的不同在於,slice的兩個引數可以為負數,而substing的引數需要為正整數。當slice的引數為負數時,代表從後向前的下標,例如如果star=-1則代表起始位置是最後一個字元。
substr的第一個引數代表起始位置,第二個引數代表擷取的字元長度,由於ECMAscript沒有對該方法進行標準化,因此不推薦使用。

var str = "hello word";
console.log(str.slice(-3,-1));
//or
console.log(str.substr(1,2));
//el
console.log(str.substring(0,2));
//he

2.3 字串分隔 split(separator[, num])

split() 方法用於把一個字串分割成字串陣列。第一個引數程式碼分隔符,第二個引數是可選的,如果不填那麼split將分割後的陣列如數返回,如果num有值,則返回對應數量的陣列

var str = "a b c d";
str.split(' ');
//['a','b','c','d']
str.split(' ',2);
//['a','b']

split()方法和Array.join()相對應

2.3 大小寫轉換 toLowerCase()、toUpperCase()、toLocaleLowerCase()、toLocaleUpperCase()

toLowerCase()和toUpperCase()是相對應的方法,分別將字串轉成全小寫或全大寫。

var str = "Hello";
str.toLowerCase();
//hello
str.toUpperCase();
//HELLO

toLocaleLowerCase()、toLocaleUpperCase()在中文和英文環境下與前兩個方法的作用一樣,僅在部分特殊語言場景下會使用本地化方式(如土耳其語)。

3. 注意事項

3.1 indexOf()與lastIndexOf()

indexOf()和lastIndexOf()的功能基本一致,都是返回指定文字在字串中出現的下標位置。二者唯一的區別就在於當字串中存在相同字元時的處理方式,通過下面這個例子就很容易理解了。

var str = "hello";
console.log(str.indexOf("l"))
//2  返回指定字元在字串中首次出現的下標(str中包含兩個“l”)
console.log(str.lastIndexOf("l"))
//3  返回指定字元在字串中最後一次出現的下標

3.2 字元大小比較——localCompare()

javascript中字元比較可以直接用“>”或者“<”,但是這種比較是基於字元的Unicode來的。而localCompare()則是結合了本地的排序規則。示例程式碼:

var a = "李";//Unicode=26446
var b = "張";//Unicode=24352
console.log(a<b);
//false   "李"的Unicode大於“張”
console.log(a.localCompare(b))
//-1      按拼音順序“李”小於“張”

3.3 search()與indexOf()的區別

search()和indexOf()均能返回字串在字串中首次出現的下標,若沒有匹配的字串則返回-1 。唯一不同的是search()的引數還可以是一個正則表示式,而indexOf()則不允許。