字符串(String)

首页 > JavaScript基本对象 > 字符串(String)

目录

■ 一览

anchor(), big(), blink(), bold(), charAt(), charCodeAt(), concat(), fixed(), fontcolor(), fontsize(), fromCharCode(), indexOf(), italics(), lastIndexOf(), length, link(), match(), replace(), search(), slice(), small(), split(), strike(), String(), sub(), substr(), substring(), sup(), toLowerCase(), toUpperCase()

字符串

JavaScript 里的字符串包含在双引号(")或单引号(')里。

xx = "ABCDEFG";
yy = 'ABCDEFG';

■ 转义符

反斜杠(\)在 JavaScript 叫转义符,它可以使它后面的一个字符产生特殊的作用。

\n - 换行
\f - 换页
\b - 退格
\r - 回车
\t - 横向跳格(TAB)
\' - 单引号(')
\" - 双引号(")
\\ - 反斜杠(\)
\nnn - 用8进制数指定字符编码(比如 "A" 是 "\101")
\xnn - 用16进制数指定字符编码(比如 "A" 是 "\x41")
\unnnn - Unicode字符

下面的例子里,弹出的警告框里的文字在中间换行。

alert("再见。\n欢迎再来。");

■ 单双引号

在双引号(")中不能使用双引号(")。单引号(')中也不能使用单引号(')。

str = "双引号是 " 。"; ← error
str = '单引号是 ' 。'; ← error

可以在双引号中使用单引号('),单引号(')中使用双引号(")。或者使用转义符(\)。

str = "单引号是 ' 。";
str = '双引号是 " 。';
str = "双引号是 \" ,单引号是 \' 。";

■ 字符串对象

string = new String(string)

生成一个保存了 string 的值的字符串对象。和内置函数的 String() 不是同一个东西。为了符合面向对象中“数据类型都可以生成对象”的思想,JavaScript准备了这个类,不过基本没什么人用。

xx = new String("ABC");

■ 字符串的长度

string.length

返回字符串的长度。

str = "欢迎光临";
alert("这是" + str.length + "个文字。");

■ 截取字符串

string.charAt(n)

返回 string 里的第 n 个字符(开头字符为第 0 个)。

str = "ABCDEFG";
for (i = 0; i < str.length; i++) {
    document.write("[" + str.charAt(i) + "]");
}
string.substring(from [, to])

返回 string 里的第 from 个字符到第 to - 1 个字符(开头字符为第 0 个)的字符串。指定负数的话会被解释为 0 。省略 to 会返回第 from 个字符到最后的字符串。

"ABCDEFG".substring(2, 4);    // 返回"CD"
string.slice(from [, to])

返回 string 里的第 from 个字符到第 to - 1 个字符(开头字符为第 0 个)的字符串。指定负数的话会从后面开始计数,这点和 substring() 不同。省略 to 会返回第 from 个字符到最后的字符串。

"ABCDEFG".slice(2, 4);    // 返回"CD"
"ABCDEFG".slice(2);       // 返回"CDEFG"
string.substr(from [, len])

返回 string 里的第 from 个字符开始(开头字符为第 0 个),长度为 len 个字符的字符串。from 指定负数的话会从后面开始计数(IE6无效)。省略 len 会返回第 from 个字符到最后的字符串。

"ABCDEFG".substr(2, 4);    // 返回"CDEF"

■ 字符串的分割与连接

string.split(sep [, limit])

sep 为分割字符,把字符串 string 分割成几部分,返回它们的数组。limit 用来限制数组的最大长度。

a = "23:59:59".split(":");
document.write(a[0] + "时" + a[1] + "分" + a[2] + "秒");
string.concat(string2)

返回 stringstring2 连接后的字符串。等同于 string + string2

xx = "ABC".concat("DEF"); // 等同于 xx = "ABC" + "DEF";

■ 字符串的置换

string.replace(regexp, newString)

返回把 string 字符串内匹配 regexp 的部分置换成 newString 的字符串。关于匹配规则请参考《正则表达式》。

xx1 = "This is a pen.".replace("pen", "book");
xx2 = "AB".replace("(.)(.)",
    function(str, p1, p2) {
        return(p2 + p1);
    });
string.toUpperCase()
string.toLowerCase()

toUpperCase() 把 string 转换成大写字母,toLowerCase() 把 string 转换成小写字母。

xx1 = "Abc".toUpperCase(); // 返回 "ABC"
xx2 = "Abc".toLowerCase(); // 返回 "abc"

■ 字符串的搜索

string.indexOf(key [, from])

在字符串 string 中,从第 from 个字符开始(开头字符为第 0 个)向后搜索第一个 key 出现的位置,并返回代表位置的数字,没找到的话返回 -1 。

xx = "ABCABC".indexOf("C");       // 返回 2
xx = "ABCABC".indexOf("C", 3);    // 返回 5
string.lastIndexOf(key [, from])

在字符串 string 中,从第 from 个字符开始(开头字符为第 0 个)向前搜索第一个 key 出现的位置,并返回代表位置的数字,没找到的话返回 -1 。

fileName = "xxx.gif";
if ((n = fileName.lastIndexOf(".")) != -1) {
    ext = fileName.substring(n);
}

■ 字符串的匹配

string.match(regexp)

返回字符串 string 中第一个匹配正则表达式 regexp 的字符串。找不到匹配字段时返回 null 。关于匹配规则请参考《正则表达式》。

if ("ABCDEFG".match(/def/i)) {
    alert("Match");
}
string.search(regexp)

返回字符串 string 中第一个匹配正则表达式 regexp 的字符串的位置。找不到匹配字段时返回 -1 。关于匹配规则请参考《正则表达式》。

if ("ABCDEFG".search(/def/i) != -1) {
    alert("Match");
}

■ 字符与字符编码的转换

string.charCodeAt(n)

返回字符串 string 里第 n 个字符(开头字符为第 0 个)的编码。

c1 = "ABC".charCodeAt(0); 
c2 = "宅男".charCodeAt(0);  
String.fromCharCode(num1, ..., numN)

返回字符编码 num1, ..., numN 组成的字符串。

str = String.fromCharCode(0x41, 0x42, 0x43);
alert(str);   // 结果为 "ABC"

■ 给字符串加上标签

string.bold()
string.italics()
string.fixed()
string.big()
string.small()
string.blink()
string.strike()
string.sup()
string.sub()
string.fontcolor(color)
string.fontsize(size)
string.anchor(name)
string.link(name)

分别给字符串 string 加上开始标签和结束标签。 比如 "ABC".bold() 将返回 "<b>ABC</b>" 。

document.write("粗体字".bold());
document.write("斜体字".italics());
document.write("打字机字体".fixed());
document.write("大文字".big());
document.write("小文字".small());
document.write("闪烁".blink());
document.write("删除线".strike());
document.write("上标".sup());
document.write("下标".sub());
document.write("红色文字".fontcolor("red"));
document.write("7号字体".fontsize(7));
document.write("创建锚".anchor("xxx"));
document.write("链接".link("index.html"));