js隨筆(二):JS String Method
String Methods and Properties
String.length: length()
返回字串長度
var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var sln = txt.length;
Finding a String in a String: indexOf(str,[, index])
在字串中找到你想要的字串,indexOf返回的位置是你搜索字串第一次出現的位置。
var str = "Please locate where 'locate' occurs!"; var pos = str.indexOf("locate");
lastIndexOf()返回的則是你所搜尋的字串在被搜尋字串中最後一次出現的位置。
var str = "Please locate where 'locate' occurs!"; var pos = str.lastIndexOf("locate");
如果indexOf()或者lastIndexOf()在被搜尋字串中沒有找到你要搜尋的字串,則返回-1.
indexOf()或者lastIndexOf()都接受傳入第二個引數,作為查詢的開始位置
var str = "Please locate where 'locate' occurs!"; var pos = str.indexOf("locate",15);
Extracting String Parts
從字串中取出一段字串,三種函式:
slice(start, end) substring(start, end) substr(start, length)
start--開始位置; end--結束為止; length--取出字串的長度
·slice() :
* 取出從start位(包含start位)到end位(不包含end位)的字串
* start、end支援負數
var str = "Apple, Banana, Kiwi"; var res = str.slice(-12, -6); Banana
* 允許沒有第二個引數,返回的結果就是從star開始一直到最後
·substring() :
* substring()和slice()的作用大多數相似。
* 不同點在於,substring() 不接受負值。
var str = "Apple, Banana, Kiwi"; var res = str.substring(7, 13); Banana
·substr() :
* substr()和slice()的作用類似。
* 不同點在於,substr()的第二個引數是要取出字串的長度。
var str = "Apple, Banana, Kiwi"; var res = str.substr(7, 6); Banana
* 第一個引數為負,則位置從字串的末尾開始計數。
var str = "Apple, Banana, Kiwi"; var res = str.substr(-4); Kiwi
Replacing String Content: replace(oldString, newString)
replace()函式將一個字串中的值替換成另一個值。
str = "Good Boy!"; var n = str.replace("Good", "Bad");
replace()只替換第一個匹配上的字串。
replace()函式區分字母大小寫。大小寫不匹配的話,會替換失敗。
str = "Good Boy!"; var n = str.replace("GOOD", "Bad");
如果想不區分大小寫的話,使用帶有/ i標誌的正則表示式(不敏感):
str = "Good Boy!"; var n = str.replace(/GOOD/i, "Bad");
如果要替換字串中所有的匹配項,則需使用/g標誌的正則表示式(全域性匹配):
str = "Good Boy Boy Boy!"; var n = str.replace(/Boy/g, "Girl");
Converting to Upper and Lower Case: toUpperCase()/toLowerCase()
toUpperCase()/toLowerCase()函式將一個字串中的字母轉換成大寫/小寫:
var text1 = "Hello World!"; // String var text2 = text1.toUpperCase(); // text2 is text1 converted to upper var text3 = text1.toLowerCase(); // text2 is text1 converted to lower
The concat() Method: concat()
concat()函式將兩個或多個字串連線起來。
var text1 = "Hello"; var text2 = "World"; var text3 = text1.concat(" ", text2); Hello World
String.trim()
去掉字串兩邊的空格。
var str = " Hello World! "; alert(str.trim()); Hello World
IE8以下不支援trim()函式,因此trim也可以使用replace()實現:
var str = " Hello World! "; alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''));
還可以在string.prototype中新增以replace()實現的trim()解決方案:
if (!String.prototype.trim) { String.prototype.trim = function () { return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); }; var str = " Hello World! "; alert(str.trim());
Extracting String Characters
從字串中取出字元
charAt(position)
charCodeAt(position)
Property access [ ]
position -- 要取出字元的位置
· charAt() 函式
* 返回字串中position位置上的字元
var str = "HELLO WORLD"; str.charAt(0); // returns H
查詢為空的話,則返回 ""
· charCodeAt()函式
* 返回在字串中指定索引處的字元的Unicode,該方法返回UTF-16程式碼(0到65535之間的整數)。
var str = "HELLO WORLD"; str.charCodeAt(0); // returns 72
查詢為空的話,則會返回 32
·Property access [ ]
* 這不是一個函式,ECMAScript 5 支援使用 [ ] 來訪問字串的某一位:
var str = "HELLO WORLD"; str[0]; // returns H
查詢為空的話,返回只為 undefined
Converting a String to an Array: split()
通過split()函式,將字串轉化成一個列表:
var txt = "a,b,c,d,e"; // String txt.split(","); // Split on commas txt.split(" "); // Split on spaces txt.split("|"); // Split on pipe