字符串常用方法2
substring() 方法
substring()
类似于 slice()
。
不同之处在于 substring()
不接受负的索引。
实例
var str = "Apple, Banana, Mango";
var res = str.substring(7,13); //Banana
如果省略第二个参数,则该 substring()
将裁剪字符串的剩余部分。同 slice
substr() 方法
substr()
也类似于 slice()
。
不同之处在于第二个参数规定被提取部分的长度。
实例
var str = "Apple, Banana, Mango";
var res = str.substr(7,6); //Banana
var res = str.substr(7); //Banana, Mango
如果省略第二个参数,则该 substr() 将裁剪字符串的剩余部分。
如果首个参数为负,则从字符串的结尾计算位置。
实例
var str = "Apple, Banana, Mango";
var res = str.substr(-5); //Mango
第二个参数不能为负,因为它定义的是长度。
替换字符串内容
replace()
方法用另一个值替换在字符串中指定的值:
实例
str = "Apple, Banana, Mango";
var n = str.replace("Banana", "Lemon"); //Apple, Lemon, Mango
replace()
方法不会改变调用它的字符串。它返回的是新字符串。
默认地,replace()
只替换首个匹配:
实例
str = "Apple, Banana, Mango, Apple, APPLE";
var n = str.replace("Apple", "Lemon"); //Lemon, Banana, Mango, Apple, APPLE
var n = str.replace(/apple/i, "Lemon"); //Lemon, Banana, Mango, Apple, APPLE
var n = str.replace(/apple/ig, "Lemon"); //Lemon, Banana, Mango, Lemon, Lemon
默认地,replace()
对大小写敏感,也就是说会匹配字母大小写。因此不对匹配 APPLE
所以,需执行大小写不敏感的替换,可以使用正则表达式 /i
(大小写不敏感)
如果,需替换所有匹配,请使用正则表达式的 g
标志(用于全局搜索)
转换为大写和小写
通过 toUpperCase()
把字符串转换为大写:
实例
var text1 = "Hello World!";
var text2 = text1.toUpperCase(); //HELLO WORLD!
通过 toLowerCase()
把字符串转换为小写:
实例
var text1 = "Hello World!";
var text2 = text1.toLowerCase(); //hello world!
concat() 方法
concat()
连接两个或多个字符串:
实例
var text1 = "Hello";
var text2 = "World";
text3 = text1.concat(" ",text2); //Hello World
concat()
方法可用于代替加运算符。下面两行是等效的:
实例
var text = "Hello" + " " + "World!";
var text = "Hello".concat(" ","World!"); //Hello World
所有字符串方法都会返回新字符串。它们不会修改原始字符串。
其实,字符串是不可变的,因为字符串不能更改,只能替换。
String.trim()
trim()
方法删除字符串两端的空白符:
实例
var str = " Hello World! ";
alert(str.trim()); //Hello World!
注意:Internet Explorer 8 或更低版本不支持 trim()
方法。
如需支持 IE 8,只能可搭配正则表达式使用 replace()
方法代替:
实例
var str = " Hello World! ";
alert(str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '')); //Hello World!
您还可以使用上面的 replace 方案把 trim 函数添加到 JavaScript String.prototype,以便给其他String类型变量使用
实例
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()); //Hello World!
提取字符串字符
这是两个提取字符串字符的安全方法:
- charAt(position)
- charCodeAt(position)
charAt() 方法
charAt()
方法返回字符串中指定下标(位置)的字符串:
实例
var str = "HELLO WORLD";
str.charAt(0); //H
charCodeAt() 方法
charCodeAt()
方法返回字符串中指定索引的字符 unicode 编码:
实例
var str = "HELLO WORLD";
str.charCodeAt(0); //72
把字符串转换为数组
可以通过 split()
将字符串分割并转换为数组:
实例
var txt = "a,b,c,d,e"; // 字符串
txt.split(","); // 用逗号分隔
txt.split(" "); // 用空格分隔
txt.split("|"); // 用竖线分隔
如果省略分隔符,被返回的数组将包含 index [0] 中的整个字符串。
如果分隔符是 “”,被返回的数组将是间隔单个字符的数组:
实例
var txt = "Hello"; // 字符串
txt.split(""); // 分隔为字符 [ 'H', 'e', 'l', 'l', 'o' ]