字符方法
charAt(index) 用于返回指定位置的字符极阅,index從0開始計(jì)算
var stringValue = "hello world";
console.log(stringValue.charAt(1)); // e
charCodeAt(index)用于返回指定字符的ASCLL值(字符編碼值)
var stringValue = "hello world";
console.log(stringValue.charCodeAt(1)); // 101
[index] ECMAScript5中定義了另一個(gè)訪問個(gè)別字符的方法。在支持此方法的瀏覽器中爬早,可以使用方括號(hào)加數(shù)字索引來訪問字符串中的特定字符已卷。(IE8、Firefox、Chrom、Opera支持)
var stringValue = "hello world";
console.log(stringValue[1]); // e
字符串操作方法
concat(element1,element2...elementx) 用于拼接兩個(gè)或多個(gè)字符串
var stringValue = "hello ";
var result = stringValue.concat('world');
console.log(result) //"hello world";
console.log(stringValue) //"hello";
var stringValue = "hello ";
var result = stringValue.concat('world','!');
console.log(result) //"hello world!";
console.log(stringValue) //"hello";
三個(gè)基于子字符串創(chuàng)建新字符串的方法
slice(start,end)用于截取start,end指定區(qū)間內(nèi)的字符串并返回
- 此方法不會(huì)操作原字符串對(duì)象數(shù)據(jù)睛挚,而是創(chuàng)建字符串副本保存截取后的字符串?dāng)?shù)據(jù)
- 如果end未指定,則表示直接從start直到數(shù)組末尾澈灼,
- 如果start或end為負(fù)數(shù),將傳入的負(fù)值與字符串長度相加
var stringValue = "hello world";
console.log(stringValue.slice(3)); //"lo world"
console.log(stringValue.slice(3,7)); // "lo w"
console.log(stringValue.slice(-3)); // "rld"
console.log(stringValue.slice(3,-4)); // "lo w"
substr(start,length)用于字符串截取,方法接收兩個(gè)參數(shù)
- 此方法不會(huì)操作原字符串對(duì)象數(shù)據(jù)叁熔,而是創(chuàng)建字符串副本保存截取后的字符串?dāng)?shù)據(jù)
- 第一個(gè)參數(shù)start,表示從start索引位置開始截取委乌,索引從0開始計(jì)算,如果此參數(shù)值是負(fù)數(shù)荣回,則會(huì)從字符串結(jié)尾開始計(jì)算遭贸,比如-1表示最后一個(gè)字符,-2表示倒數(shù)第二個(gè)字符心软,以此類推(也可以將傳入的負(fù)值與字符串長度相加)壕吹。
- 第二個(gè)參數(shù)length,表示截取的字符串長度,此參數(shù)為可選删铃,如不指定此參數(shù)耳贬,則默認(rèn)會(huì)一直截取到字符串結(jié)尾。如參數(shù)為負(fù)數(shù)猎唁,則將參數(shù)轉(zhuǎn)換為0咒劲。
var stringValue = "hello world";
console.log(stringValue.substr(3)); //"lo world"
console.log(stringValue.substr(3,7)); // "lo worl"
console.log(stringValue.substr(-3)); // "rld"
console.log(stringValue.substr(3,-4)); // ""
substring(start,end)用于截取start與end索引區(qū)間內(nèi)的字符串,區(qū)間范圍為[start,end],前閉后開
- 注意:參數(shù)start和end必須為非負(fù)整數(shù),
- 如start為負(fù)數(shù)诫隅,則默認(rèn)會(huì)將start賦值為0腐魂,
- 如end為負(fù)數(shù),則默認(rèn)會(huì)將end賦值為0逐纬,且截取區(qū)間改為[0,start),
- 如果start大于end蛔屹,那么會(huì)首先交換兩個(gè)參數(shù)值的位置,即區(qū)間改為[end,start)
var stringValue = "hello world";
console.log(stringValue.substring(3)); //"lo world"
console.log(stringValue.substring(3,7)); // "lo w"
console.log(stringValue.substring(-3)); // "rld"
console.log(stringValue.substring(3,-4)); // "hel"
字符串位置方法
indexOf(searchvalue,fromindex)用于返回指定字符在字符串中第一次出現(xiàn)的索引豁生,從第一個(gè)字符開始查找兔毒,找到立即返回。如果沒有找到該字符串沛硅,則返回-1
searchvalue 必需眼刃。規(guī)定需檢索的字符串值。
fromindex可選的整數(shù)參數(shù)摇肌。規(guī)定在字符串中開始檢索的位置擂红。它的合法取值是 0 到 stringObject.length - 1。如省略該參數(shù)围小,則將從字符串的最后一個(gè)字符處開始檢索昵骤。
var stringValue = "hello world";
console.log(stringValue.indexOf('O')); //4
console.log(stringValue.indexOf('O',6)); //7
lastIndexOf(searchvalue,fromindex) 方法可返回一個(gè)指定的字符串值最后出現(xiàn)的位置肯适,在一個(gè)字符串中的指定位置從后向前搜索变秦。
searchvalue 必需。規(guī)定需檢索的字符串值框舔。
fromindex可選的整數(shù)參數(shù)蹦玫。規(guī)定在字符串中開始檢索的位置赎婚。它的合法取值是 0 到 stringObject.length - 1。如省略該參數(shù)樱溉,則將從字符串的最后一個(gè)字符處開始檢索挣输。
var stringValue = "hello world";
console.log(stringValue.lastIndexOf('O')); //7
console.log(stringValue.indexOf('O',6)); //4
trim()方法
trim()方法創(chuàng)建一個(gè)字符串的副本福贞,刪除前置及后綴的所有空格撩嚼,然后返回結(jié)果。
(支持這個(gè)方法的瀏覽器有IE9+挖帘、Firefox3.5+完丽、Safari5+、Opera10.5+ 和Chrome)
var stringValue = " hello world ";
var trimmedStringValue = stringValue.trim();
console.log(stringValue); //" hello world "
console.log(trimmedStringValue); //"hello world"
字符串大小寫轉(zhuǎn)換方法
toLowerCase()把字符串轉(zhuǎn)換成小寫
var stringValue = "HELLO WORLD";
console.log(stringValue.toLowerCase())拇舀; //hello world
toUpperCase()把字符串轉(zhuǎn)換成大寫
var stringValue = "hello world";
console.log(stringValue.toUpperCase())逻族; //HELLO WORLD
toLocalLowerCase() 把字符串轉(zhuǎn)換成小寫,針對(duì)特定地區(qū)的實(shí)現(xiàn)
var stringValue = "HELLO WORLD";
console.log(stringValue.toLocalLowerCase()); //hello world
toLocalUpperCase() 把字符串轉(zhuǎn)換成大寫,針對(duì)特定地區(qū)的實(shí)現(xiàn)
var stringValue = "HELLO WORLD";
console.log(stringValue.toLocalUpperCase())你稚; //hello world
字符串的模式匹配方法
match()用于檢索與指定正則匹配的子串瓷耙,如果開啟了全局檢索模式,且有多個(gè)符合條件的子串刁赖,那么返回的是一個(gè)數(shù)組搁痛。
var text = "cat,bat,sat,fat";
var pattern = /.at/;
var matches = text.match(pattern);
console.log(matches.index); //0
console.log(matches[0]); //"cat"
console.log(pattern.lastIndex);//0
search()用于返回指定子串或符合指定正則表達(dá)式的子串在原字符串中第一次出現(xiàn)的索引,如果沒有找到,則返回-1
var text = "cat,bat,sat,fat";
var pos = text.search(/at/);
console.log(pos); //1
replace()用于字符串替換操作宇弛,接收兩個(gè)參數(shù)鸡典。
- 第一個(gè)參數(shù):表示待替換的字符串,或者是替換的正則表達(dá)式
- 第二個(gè)參數(shù):替換文本枪芒,也可以是一個(gè)function的返回值
- 注意此方法不會(huì)改變?cè)址畬?duì)象彻况,而是返回新字符串對(duì)象
var text = "cat,bat,sat,fat";
var result = text.replace("at","ond");
console.log(result); //"cond,bond,sond,fond"
result = text.replace(/at/g,"ond");
console.log(result); //"cond,bond,sond,fond"
split() 以指定的分割字符或正則表達(dá)式的匹配字符來分割原字符串,返回結(jié)果以數(shù)組形式表示舅踪。此方法還可以接收第二個(gè)參數(shù)纽甘,第二個(gè)參數(shù)可以限制最終返回的數(shù)組元素最大個(gè)數(shù)。
var colorText = "red,blue,green,yellow";
var color1 = colorText.split(",");//["red","blue","green","yellow"]
var color2 = colorText.split(",",2);//["red","blue"]
var color3 = colorText.split(/^\,]+/); //["","","",""]
localeCompare() 方法
localeCompare()比較兩個(gè)字符串抽碌,返回下列值中的一個(gè)
- 如果字符串在字母表中應(yīng)該排在字符串參數(shù)之前悍赢,則返回一個(gè)負(fù)數(shù)(大多數(shù)情況下是-1,具體的值要視實(shí)現(xiàn)而定);
- 如果字符串等于字符串參數(shù)货徙,則返回
- 如果字符串在字母表中應(yīng)該排在字符串參數(shù)之后左权,則返回一個(gè)正數(shù)(大多數(shù)情況下是1,具體的值要視實(shí)現(xiàn)而);
var stringValue = "yellow";
console.log(stringValue.localeCompare("brick")); //1
console.log(stringValue.localeCompare("yellow")); //0
console.log(stringValue.localeCompare("zoo")); //-1
fromCharCode() 方法
fromCharCode()接收一個(gè)或多個(gè)字符編碼痴颊,然后將他們轉(zhuǎn)換成一個(gè)字符串,該方法與實(shí)例方法charCodeAt()執(zhí)行的是相反的操作赏迟。
console.log(String.fromCharCode(104,101,108,108,111)); //"hello"