String对象是迄今为止在JavaScript中最常用的对象。在你定义一个字符串数据类型的变量的任何时候,JavaScript就自定为你创建一个String对象。例如:
var myStr = "Hello world";
当创建一个字符串时,有一些特殊字符是不能直接添加到字符串中的。针对那些字符,JavaScript提供了一组转义码,如下表所示:
String对象的转义码
转义码 | 说 明 | 示 例 | 输出字符串 |
\' | 单引号 | "couldn\'t be" | couldn't be |
\" | 双引号 | "I \"think" I "am"" | I "think" I "am" |
\\ | 反斜杠 | "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属性确定一个字符串的长度,如下例所示:
var numOfChars = myStr.length;
String对象有许多函数,使你可以以不同的方式访问和操作字符串。用于字符串操作的方法如下表所示:
操作String对象的方法
方 法 | 说 明 |
charAt(index) | 返回指定索引处的字符 |
charCodeAt(index) | 返回指定索引处的字符的Unicode值 |
concat(str1,str2,...) | 连接两个或多个字符串,返回连接后的字符串的副本 |
formCharCode() | 将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位置开始,并按照指定的字符length(长度)提取字符 |
substring(from,to) | 返回字符索引在from与to(不含)之间的字符 |
toLowerCase() | 将字符串转换为小写 |
toUpperCase() | 将字符串转换为大写 |
valueOf() | 返回原始字符串值 |
1、合并字符串
你可以使用+操作符或使用第一个字符串上的concat()函数将多个字符串合并。例如,在下面的代码中,sentence1和centence2将是相同的:
var word1 = "Today";
var word2 = "is";
var word3 = "tomorrows\'";
var word4 = "yesterday.";
var sentence1 = word1+word2+word3+word4;
var sentence2 = word1.concat(word2,word3,word4);
2、在字符串中搜索子串
要确定一个字符串是否是另一个字符串的子字符串,可以使用indexOf()方法。例如,下面的代码只有当字符串包含单词think时,才把它写入控制台:
var myStr = "I think, therefore I am.";
if (myStr.indexOf("think") != -1){
console.log(myStr);
}
3、在一个字符串中替换单词
另一种常见的String对象的任务是把一个子串替换为另一个。要替换字符串中的单词或短语,可以使用replace()方法。下面的代码用变量username的值来替换文本"<username>":
var username = "Brad";
var output = "<username>please enter your password";
output.replace("<username>",username);
4、将字符串分割成数组
对于字符串,一个非常常见的任务是使用分隔符将它们分割成数组。例如,下面的代码在":"分割符上使用split()方法将一个时间字符串转换成他的基本组成部分的数组:
var t = "12:10:36";
var tArr = t.split(":");
var hour = tArr[0];
var mimute = tArr[1];
var second = tArr[2];