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