JavaScript之字符串处理

JavaScript的String对象简介

String对象是迄今为止在JavaScript中最常用的对象。在你定义一个字符串中数据类型的变量的任何时候,JavaScript就自动为你创建一个String对象。例如:

1
var myStr = "Test String!";

String对象的转义码

当创建一个字符串时,有一些特殊字符是不能直接添加到字符串中的。正对那些字符,JavaScript提供了一组转义码,如下表:

转义码 说明 示例 输出字符串
\’ 单引号 “couldn\’ be” couldn’t be
\” 双引号 “I \”think\”” I “think”
\\ 反斜杠 “one\\two\\three” one\two\three
\n 换行符 “I am\nI said” I am
I said
\r 回车符 “to be\ror not” to be
or not
\t 制表符 “one\ttwo\tthree” one two three
\b 退格符 “correctoin\b\b\bion” correction
\f 换页符 “Title A\fTitle B” Title A 然后 Title B

String对象的length

使用String对象的length属性确定一个字符串的长度。例如:

1
var num = myStr.length;

String对象的方法

String对象有许多函数,可以以不同的方式访问和操作字符串。如下表:

方法 说明
charAt(index) 返回指定索引处的字符
charCodeAt(index) 返回指定索引处的字符的Unicode值
concat(str1, str2, …) 连接两个或多个字符串,返回连接后的字符串的副本
fromCharCode() 将Unicode值转换成实际的字符
indexOf(subString) 返回指定的subString值第一次出现的位置。如果没有找到subString,返回-1
lastIndexOf(subString) 返回指定的subString值最后出现的位置。如果没有找到subString,返回-1
match(regex) 搜索字符串,并返回正则表达式的所有匹配
replace(subString/regex, replacementString) 搜索字符串的字符串或正则表达式匹配,并用新的子串替换匹配的子串
search(regex) 基于正则表达式搜索字符串,并返回第一个匹配的位置
slice(start, end) 返回字符串的start和end(不含)位置之间的部分的一个新字符串
split(sep, limit) 根据分隔符或正则表达式,把字符串分割为子字符串数组。可选的limit参数定义从头开始执行分割的最大数量
substr(start, length) 从字符串指定的start位置开始,并按照指定的字符长度提取字符
substring(from, to) 返回字符索引在from与to(不含)之间的子串
toLowerCase() 将字符串转换为小写
toUpperCase() 将字符串转换为大写
valueOf() 返回原始字符串值

合并字符串

可以使用+操作或使用第一个字符串上的concat()函数将多个字符串合并。例如(该例中的str1和str2结果是一样的):

1
2
3
4
5
var word1 = "I ";
var word2 = "am ";
var word3 = "fine!";
var str1 = word1+word2+word3;
var str2 = word1.concat(word2,word3);

字符串中搜索子串

要确定一个字符串是否是另一个字符串的子字符串,可以使用indexOf()方法。例如:

1
2
3
4
var myStr = "Test String!";
if(myStr.indexOf("Test") != -1){
console.log("该字符串包含Test!");
}

字符串中替换单词

要替换字符串中的单词或短语,可用replace()方法。例如:

1
2
3
var test1 = "test1";
var test2 = "test2 replace!";
test2.replace("test2", test1);

分割字符串

将字符串按照指定的分隔符或正则表达式分割成数组,可用split()方法。例如:

1
2
3
4
5
var time = "11:11:11";
var timeArr = time.split(":");
var hour = timeArr[0];
var minute = timeArr[1];
var second = timeArr[2];