特殊字元說明
代碼輸出
\0空字元
\'單引號
\"雙引號
\\反斜線
\n斷行
\r回車
\v垂直制表
\t制表
\b退格
\f饋頁
\連接下一行字串
`樣板字面值。
例如:var a="hello";
var b=`The ${a}`;//b="The hello"
\uXXXXunicode 代碼。
例如:'\u0030' 相當於 '0'
\u{X} ... \u{XXXXXX}unicode 代碼。
例如:'\u{A}' 相當於 '\n'
\xXX16進制碼轉ASCII碼。
例如:'\x61' 相當於 'a'

string 與 String 差別
var a="1+2";
var b=new String(a);//或是 var b=new String("1+2");
alert(typeof(a));//結果 string
alert(typeof(b));//結果 object
alert(eval(a));//結果 3。eval() 會執行 string 運算式。
alert(eval(b));//結果 1+2。eval() 無法執行 object 運算式。
alert("a"==new String("a"));//結果 true。

string 或 String 運算子
名稱說明範例
+字串串接var a="1";
var b=a+"2";//結果 b="12";
+=字串串接,並指定。var a="1";
a+="2";//結果 a="12";
var b=new String("1");
b+="2";//結果 a="12";

String 物件說明
    字串特性
  1. 大小寫有別,也就是 "a" 不等於 "A"。
  2. 字串第一個字的索引編號是 0,也就是 "ABC" 其中 "A" 這個字的位置是第 0 個位置。
  3. 字串範圍的表示 (起始,終值),有些方法最後一個索引值(終值)通常索引不到,只索引到終值-1。

  4. 因此注意終值必須+1,才會是正確結果。
名稱說明範例
String(物件)轉換物件為字串的建構式。a=String(2e3);//a="2000",2e3 表示科學記號 2×103
indexOf(子字串)找出子字串位置。var a="ABCDE";
var b=a.indexOf("BC");//b=1
substring(字串起點)
substring(字串起點,字串終點+1)
擷取子字串。
注意第 2 個用法,如果要擷取 "ABCDEF" 從第 2 個字開始至第 4 個字(也就是 CDE),則必須寫substring(2,5)
var a="ABCDE";
a.substr(2);//"CDE"
"ABCDEF".substring(1,3);//"BC"
substr(字串起點)
substr(字串起點,擷取長度)
擷取子字串。
從字串起點至最後一字。
從字串起點擷取指定長度。
var a="ABCDEF";
a.substr(1);//"BCDEF"
"ABCDEF".substr(2,3);//"CDE"
charAt(索引值)傳回字串其中一字。"abcd".charAt(2);//'c'
[索引值] 使用陣列方式傳回其中一字。"abcd"[2];//'c'
localeCompare(比對字串)比對兩字串。
相同傳回 0,不相同傳回 1
"ABC".localeCompare("ABC");//0
valueOf()傳回字串本身。(String 會被轉型成一般字串)var a = new String("1+2+3");
alert(a);//"1+2+3"
alert(a.valueOf());//"1+2+3"
alert(eval(a));//"1+2+3"
alert(eval(a.valueOf()));//6
alert(a.valueOf("1+2");//

尋找字串(search)
stringObject.search(searchstring)
stringObject.search(尋找的字串)
大小寫必須相符

var str = "test String";
alert(str.search("Str"));
alert(str.search("str"));
輸出結果:5
輸出結果:-1

傳回字串內相符的字串(match)
無相符字串則傳回null,大小寫要相符

var str = "test String";
alert(str.match("TEST"));
alert(str.match("Str"));
輸出結果:null
輸出結果:Str

取得字串長度(length)
var str = "test String";
alert(str.length);
輸出結果:11

尋找某字串在字串內的位置(indexOf)
stringObject.indexOf(searchvalue,fromindex)
stringObject.indexOf (尋找的字串,開始尋找的位置)

var str = "test String";
alert(str.indexOf("Str"));
alert(str.indexOf("Str",6));
輸出結果:5
輸出結果:-1

從後往前找某字串在字串內的位置(lastIndexOf)
stringObject.lastIndexOf(searchvalue,fromindex)
stringObject.lastIndexOf (尋找的字串,開始尋找的位置)

var str = "test String";
alert(str.lastIndexOf("Str"));
alert(str.lastIndexOf("Str",2));
alert(str.lastIndexOf("Str",10));
輸出結果:5
輸出結果:-1
輸出結果:5

變更英文字大小寫
toUpperCase() 大寫
toLowerCase() 小寫

var str = "test String";
alert(str.toUpperCase());
alert(str.toLowerCase());
輸出結果:TEST STRING
輸出結果:test string

傳回字串內某位置的字元(charAt)
stringObject.charAt(index)
位置由0開始

var str = "test String";
alert(str.charAt(3));
alert(str.charAt(7));
輸出結果:t
輸出結果:r

傳回參數中以Unicode值所代表的字元組成的字串(fromCharCode)
String.fromCharCode(numX,numX,...,numX)
alert(String.fromCharCode(65,66,67));
輸出結果:ABC

傳回字串內某位置區間的字串(substring & substr)
stringObject.substring(start,stop)
stringObject.substring(開始位置,結束位置)
stringObject.substr(start,length)
stringObject.substr(開始位置,字串長度)
(開始位置)若為負數則由後往前數,但不適用於IE

alert("0123456789".substring(4,6))
alert("0123456789".substr(4,6))
輸出結果:45
輸出結果:456789

字串取代(replace)
stringObject.replace(findstring,newstring)
stringObject.replace(要找尋的字串,換成新的字串)
大小寫必須相符

var str = "test String";
alert(str.replace("string", "Text"));
alert(str.replace("String", "Text"));
輸出結果:test String
輸出結果:test Text

組合字串(concat)
stringObject.concat(stringA,stringB,...,stringX)
stringObject.concat(字串A,字串B,...,字串X)

var strA = "test ";
var strB = "String";
alert(str1.concat(str2));
輸出結果:test String

取得切割字串(slice)
stringObject.slice(start,end)
stringObject.slice(開始位置,結束位置)

var str = "test String";
alert(str.slice(5));
alert(str.slice(0,4));
輸出結果:String
輸出結果:test

分割字串(split)
stringObject.split(separator, howmany)
stringObject.split(分割字串, 分割後各字串的字元數)

var str = "test String";
alert(str.split(""));
alert(str.split(" ",4));
輸出結果:t,e,s,t, ,S,t,r,i,n,g
輸出結果:test,String