1. 前言

JavaScript String 对象用于处理字符串,其中提供了大量操作字符串的方法,以及一些属性。
创建 String 对象的语法格式如下:

var val = new String(value);
var val = String(value);

其中参数 value 为要创建的字符串或字符串对象。

JavaScript 中,字符串和字符串对象之间能够自由转换,因此不论是创建字符串对象还是直接声明字符串类型的变量,都可以直接使用字符串对象中提供的方法和属性。

2. String 对象中的属性

下表中列举了 String 对象中提供的属性及其描述信息:

属性

描述

constructor

获取创建此对象的 String() 函数的引用

length

获取字符串的长度

prototype

通过该属性您可以向对象中添加属性和方法

示例代码如下:

var str = new String('JavaScript');
String.prototype.name = null;
str.name = "Hello World!";
document.write(str.constructor + "<br>");       // 输出:function String() { [native code] }
document.write(str.length + "<br>");            // 输出:10
document.write(str.name);                       // 输出:Hello World!

3. String 对象中的方法

下表中列举了 String 对象中提供的方法及其描述信息:

方法

描述

anchor()

创建一个 HTML 锚点,即生成一个<a>标签,标签的 name 属性为 anchor() 方法中的参数

big()

用大号字体显示字符串

blink()

显示闪动的字符串

bold()

使用粗体显示字符串

charAt()

返回在指定位置的字符

charCodeAt()

返回指定字符的 Unicode 编码

concat()

拼接字符串

fixed()

以打字机文本显示字符串

fontcolor()

使用指定的颜色来显示字符串

fontsize()

使用指定的尺寸来显示字符串

fromCharCode()

将字符编码转换为一个字符串

indexOf()

检索字符串,获取给定字符串在字符串对象中首次出现的位置

italics()

使用斜体显示字符串

lastIndexOf()

获取给定字符串在字符串对象中最后出现的位置

link()

将字符串显示为链接

localeCompare()

返回一个数字,并使用该数字来表示字符串对象是大于、小于还是等于给定字符串

match()

根据正则表达式匹配字符串中的字符

replace()

替换与正则表达式匹配的子字符串

search()

获取与正则表达式相匹配字符串首次出现的位置

slice()

截取字符串的片断,并将其返回

small()

使用小字号来显示字符串

split()

根据给定字符将字符串分割为字符串数组

strike()

使用删除线来显示字符串

sub()

把字符串显示为下标

substr()

从指定索引位置截取指定长度的字符串

substring()

截取字符串中两个指定的索引之间的字符

sup()

把字符串显示为上标

toLocaleLowerCase()

把字符串转换为小写

toLocaleUpperCase()

把字符串转换为大写

toLowerCase()

把字符串转换为小写

toUpperCase()

把字符串转换为大写

toString()

返回字符串

valueOf()

返回某个字符串对象的原始值

示例代码如下:

var str = new String('JavaScript教程');
document.write(str.anchor("myanchor") + "<br>");     // 生成一段 HTML 代码:<a name="myanchor">JavaScript教程</a>
document.write(str.big() + "<br>");                  // 生成一段 HTML 代码:<big>JavaScript教程</big>
document.write(str.blink() + "<br>");                // 生成一段 HTML 代码:<blink>JavaScript教程</blink>
document.write(str.bold() + "<br>");                 // 生成一段 HTML 代码:<b>JavaScript教程</b>
document.write(str.charAt(10) + "<br>");             // 获取 str 中的第 11 个字符,输出:教
document.write(str.charCodeAt(10) + "<br>");         // 获取 str 中第 11 个字符的 Unicode 编码,输出:25945
document.write(str.concat(" String 对象") + "<br>"); // 将字符串“ String 对象”拼接到字符串 str 之后,输出:JavaScript教程 String 对象
document.write(str.fixed() + "<br>");                // 生成一段 HTML 代码:<tt>JavaScript教程</tt>
document.write(str.fontcolor("red") + "<br>");       // 生成一段 HTML 代码:<font color="red">JavaScript教程</font>
document.write(str.fontsize(2) + "<br>");            // 生成一段 HTML 代码:<font size="2">JavaScript教程</font>
document.write(String.fromCharCode(72,69,76,76,79) + "<br>");             // 将 Unicode 编码转换为具体的字符,输出:HELLO
document.write(str.indexOf("Script") + "<br>");             // 获取字符串“Script”在 str 中首次出现的为,输出:4
document.write(str.italics() + "<br>");                     // 生成一段 HTML 代码:<i>JavaScript教程</i>
document.write(str.lastIndexOf("a") + "<br>");              // 获取字符串“a”在 str 中最后一次出现的位置,输出 3
document.write(str.link("http://c.biancheng.net/") + "<br>");  // 生成一段 HTML 代码:<a href="http://c.biancheng.net/">JavaScript教程</a>
document.write(str.localeCompare("JavaScript") + "<br>");       // 比较字符串对象与给定字符串,返回:1
document.write(str.match(/[abc]/g) + "<br>");                   // 根据正则 /[abc]/g 检索 str,返回:a,a,c
document.write(str.replace(/[abc]/g, "Y") + "<br>");            // 使用字符串“Y”替换正则 /[abc]/g 匹配的字符,返回:JYvYSYript教程
document.write(str.search(/[Script]/g) + "<br>");               // 获取与正则匹配的字符串首次出现的位置,返回:4
document.write(str.slice(6,11) + "<br>");           // 截取字符串(获取 str 中第 7 到第 11 个字符),返回:ript教
document.write(str.small() + "<br>");               // 生成一段 HTML 代码:<small>JavaScript教程</small>
document.write(str.split("a") + "<br>");            // 根据“a”将字符串 str 拆分为数组,返回:J,v,Script教程
document.write(str.strike() + "<br>");              // 生成一段 HTML 代码:<strike>JavaScript教程</strike>
document.write(str.sub() + "<br>");                 // 生成一段 HTML 代码:<sub>JavaScript教程</sub>
document.write(str.substr(3, 7) + "<br>");          // 从第 4 个字符开始,向后截取 7 个字符,返回:aScript
document.write(str.substring(3, 7) + "<br>");       // 截取字符串(获取 str 中第 4 到第 7 个字符),返回:aScr
document.write(str.sup() + "<br>");                 // 生成一段 HTML 代码:<sup>JavaScript教程</sup>
document.write(str.toLocaleLowerCase() + "<br>");   // 返回:javascript教程
document.write(str.toLocaleUpperCase() + "<br>");   // 返回:JAVASCRIPT教程
document.write(str.toLowerCase() + "<br>");         // 返回:javascript教程
document.write(str.toUpperCase() + "<br>");         // 返回:JAVASCRIPT教程
document.write(str.toString() + "<br>");            // 返回:JavaScript教程
document.write(str.valueOf() + "<br>");             // 返回:JavaScript教程

4. 特殊字符

通过前面的学习我们知道,可以使用单引号和双引号来定义字符串,但如果字符串中也需要添加单引号或双引号该怎么办呢?我们可以使用反斜线\来转义字符串中的引号,如下例所示:

var str1 = "He said \"Goodbye\"";
var str2 = 'it\'s okay';

除了单引号和双引号外,JavaScript 中还提供了一些能够使用反斜线转义的特殊字符,如下表所示:

代码

输出

代码

输出

\'

单引号

\r

回车

\"

双引号

\t

tab

\\

反斜线本身

\b

空格

\n

换行

\f

换页