语法:java var str1 = new String();正则表达式 var str2 = "";数组 |
属性 | 描述 |
---|---|
constructor | 对建立该对象的函数的引用 |
length | 字符串的长度 |
prototype | 容许您向对象添加属性和方法 |
方法 | 描述 |
---|---|
concat() | 链接字符串。 |
anchor() | 建立 HTML 锚。 |
big() | 用大号字体显示字符串。 |
blink() | 显示闪动字符串。 |
bold() | 使用粗体显示字符串。 |
charAt() | 返回在指定位置的字符。 |
charCodeAt() | 返回在指定的位置的字符的 Unicode 编码。 |
fixed() | 以打字机文本显示字符串。 |
fontcolor() | 使用指定的颜色来显示字符串。 |
fontsize() | 使用指定的尺寸来显示字符串。 |
fromCharCode() | 从字符编码建立一个字符串。 |
indexOf() | 检索字符串。 |
italics() | 使用斜体显示字符串。 |
lastIndexOf() | 从后向前搜索字符串。 |
link() | 将字符串显示为连接。 |
match() | 找到一个或多个正则表达式的匹配。 |
replace() | 替换与正则表达式匹配的子串。 |
search() | 检索与正则表达式相匹配的值。 |
slice() | 提取字符串的片段,并在新的字符串中返回被提取的部分。 |
small() | 使用小字号来显示字符串。 |
split() | 把字符串分割为字符串数组。 |
strike() | 使用删除线来显示字符串。 |
sub() | 把字符串显示为下标。 |
substr() | 从起始索引号提取字符串中指定数目的字符。 |
substring() | 提取字符串中两个指定的索引号之间的字符。 |
sup() | 把字符串显示为上标。 |
toSource() | 表明对象的源代码。 |
toString() | 返回字符串。 |
valueOf() | 返回某个字符串对象的原始值。 |
用于把一个或多个字符串链接到 String 对象的原始值上。该方法返回的是 String 原始值,保持原始的 String 对象不变:安全
var oStringObject = new String("hello "); var sResult = oStringObject.concat("world"); alert(sResult); //输出 "hello world" alert(oStringObject); //输出 "hello " |
在上面这段代码中,调用 concat() 方法返回的是 "hello world",而 String 对象存放的仍然是 "hello "。出于这种缘由,较常见的是用加号(+)链接字符串,由于这种形式从逻辑上代表了真正的函数
var oStringObject = new String("hello "); var sResult = oStringObject + "world"; alert(sResult); //输出 "hello world" alert(oStringObject); //输出 "hello " |
indexOf() 和 lastIndexOf() 方法返回的都是指定的子串在另外一个字符串中的位置,若是没有找不到子串,则返回 -1。字体
这两个方法的不一样之处在于,indexOf() 方法是从字符串的开头(位置 0)开始检索字符串,而 lastIndexOf() 方法则是从字符串的结尾开始检索子串。例如:编码
var oStringObject = new String("hello world!"); alert(oStringObject.indexOf("o")); 输出 "4" alert(oStringObject.lastIndexOf("o")); 输出 "7" |
在这里,第一个 "o" 字符串出如今位置 4,即 "hello" 中的 "o";最后一个 "o" 出如今位置 7,即 "world" 中的 "o"。若是该字符串中只有一个 "o" 字符串,那么 indexOf() 和 lastIndexOf() 方法返回的位置相同。prototype
下一个方法是 localeCompare(),对字符串进行排序。该方法有一个参数 - 要进行比较的字符串,返回的是下列三个值之一:code
注释:若是返回负数,那么最多见的是 -1,不过真正返回的是由实现决定的。若是返回正数,那么一样的,最多见的是 1,不过真正返回的是由实现决定的。对象
示例以下:
var oStringObject = new String("yellow"); alert(oStringObject.localeCompare("brick")); //输出 "1" alert(oStringObject.localeCompare("yellow")); //输出 "0" alert(oStringObject.localeCompare("zoo")); //输出 "-1" |
在这段代码中,字符串 "yellow" 与 3 个值进行了对比,即 "brick"、"yellow" 和 "zoo"。因为按照字母顺序排列,"yellow" 位于 "brick" 以后,因此 localeCompare() 返回 1;"yellow" 等于 "yellow",因此 localeCompare() 返回 0;"zoo" 位于 "yellow" 以后,localeCompare() 返回 -1。再强调一次,因为返回的值是由实现决定的,因此最好如下面的方式调用 localeCompare() 方法:
var oStringObject1 = new String("yellow"); var oStringObject2 = new String("brick"); var iResult = oStringObject1.localeCompare(oStringObject2); if(iResult < 0) { alert(oStringObject1 + " comes before " + oStringObject2); } else if (iResult > 0) { alert(oStringObject1 + " comes after " + oStringObject2); } else { alert("The two strings are equal"); } |
采用这种结构,能够确保这段代码在全部实现中都能正确运行。
localeCompare() 方法的独特之处在于,实现所处的区域(locale,兼指国家/地区和语言)确切说明了这种方法运行的方式。在美国,英语是 ECMAScript 实现的标准语言,localeCompare() 是区分大小写的,大写字母在字母顺序上排在小写字母以后。不过,在其余区域,状况可能并不是如此。
ECMAScript 提供了两种方法从子串建立字符串值,即 slice() 和 substring()。这两种方法返回的都是要处理的字符串的子串,都接受一个或两个参数。第一个参数是要获取的子串的起始位置,第二个参数(若是使用的话)是要获取子串终止前的位置(也就是说,获取终止位置处的字符不包括在返回的值内)。若是省略第二个参数,终止位就默认为字符串的长度。
与 concat() 方法同样,slice() 和 substring() 方法都不改变 String 对象自身的值。它们只返回原始的 String 值,保持 String 对象不变。
var oStringObject = new String("hello world"); alert(oStringObject.slice("3")); //输出 "lo world" alert(oStringObject.substring("3")); //输出 "lo world" alert(oStringObject.slice("3", "7")); //输出 "lo w" alert(oStringObject.substring("3", "7")); //输出 "lo w" |
在这个例子中,slice() 和 substring() 的用法相同,返回值也同样。当只有参数 3 时,两个方法返回的都是 "lo world",由于 "hello" 中的第二个 "l" 位于位置 3 上。当有两个参数 "3" 和 "7" 时,两个方法返回的值都是 "lo w"("world" 中的字母 "o" 位于位置 7 上,因此它不包括在结果中)。
为何有两个功能彻底相同的方法呢?事实上,这两个方法并不彻底相同,不过只在参数为负数时,它们处理参数的方式才稍有不一样。
对于负数参数,slice() 方法会用字符串的长度加上参数,substring() 方法则将其做为 0 处理(也就是说将忽略它)。例如:
var oStringObject = new String("hello world"); alert(oStringObject.slice("-3")); //输出 "rld" alert(oStringObject.substring("-3")); //输出 "hello world" alert(oStringObject.slice("3, -4")); //输出 "lo w" alert(oStringObject.substring("3, -4")); //输出 "hel" |
这样便可看出 slice() 和 substring() 方法的主要不一样。
当只有参数 -3 时,slice() 返回 "rld",substring() 则返回 "hello world"。这是由于对于字符串 "hello world",slice("-3") 将被转换成 slice("8"),而 substring("-3") 将被转换成 substring("0")。
一样,使用参数 3 和 -4 时,差异也很明显。slice() 将被转换成 slice(3, 7),与前面的例子相同,返回 "lo w"。而 substring() 方法则将两个参数解释为 substring(3, 0),实际上即 substring(0, 3),由于 substring() 总把较小的数字做为起始位,较大的数字做为终止位。所以,substring("3, -4") 返回的是 "hel"。这里的最后一行代码用来讲明如何使用这些方法。
最后一套要讨论的方法涉及大小写转换。有 4 种方法用于执行大小写转换,即
从名字上能够看出它们的用途,前两种方法用于把字符串转换成全小写的,后两种方法用于把字符串转换成全大写的。
toLowerCase() 和 toUpperCase() 方法是原始的,是以 java.lang.String 中相同方法为原型实现的。
toLocaleLowerCase() 和 toLocaleUpperCase() 方法是基于特定的区域实现的(与 localeCompare() 方法相同)。在许多区域中,区域特定的方法都与通用的方法彻底相同。不过,有几种语言对 Unicode 大小写转换应用了特定的规则(例如土耳其语),所以必须使用区域特定的方法才能进行正确的转换。
var oStringObject = new String("Hello World"); alert(oStringObject.toLocaleUpperCase()); //输出 "HELLO WORLD" alert(oStringObject.toUpperCase()); //输出 "HELLO WORLD" alert(oStringObject.toLocaleLowerCase()); //输出 "hello world" alert(oStringObject.toLowerCase()); //输出 "hello world" |
这段代码中,toUpperCase() 和 toLocaleUpperCase() 输出的都是 "HELLO WORLD",toLowerCase() 和 toLocaleLowerCase() 输出的都是 "hello world"。通常来讲,若是不知道在以哪一种编码运行一种语言,则使用区域特定的方法比较安全。
提示:记住,String 对象的全部属性和方法均可应用于 String 原始值上,由于它们是伪对象。