JavaScript string 对象

JavaScript String 对象

 

  语法:java

        var str1 = new String();正则表达式

        var str2 = "";数组

 

 

 

 

 

字符串的属性

属性 描述
constructor 对建立该对象的函数的引用
length 字符串的长度
prototype 容许您向对象添加属性和方法

 

 

 

 

 

String 对象方法 

方法 描述
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() 返回某个字符串对象的原始值。

concat() 

用于把一个或多个字符串链接到 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() 和 lastIndeOf() 

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() 

下一个方法是 localeCompare(),对字符串进行排序。该方法有一个参数 - 要进行比较的字符串,返回的是下列三个值之一:code

  • 若是 String 对象按照字母顺序排在参数中的字符串以前,返回负数。
  • 若是 String 对象等于参数中的字符串,返回 0。
  • 若是 String 对象按照字母顺序排在参数中的字符串以后,返回正数。

注释:若是返回负数,那么最多见的是 -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() 是区分大小写的,大写字母在字母顺序上排在小写字母以后。不过,在其余区域,状况可能并不是如此。

 

slice() 和 substring()

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"。这里的最后一行代码用来讲明如何使用这些方法。

 

 

toLowerCase()、toLocaleLowerCase()、toUpperCase() 和 toLocaleUpperCase()

最后一套要讨论的方法涉及大小写转换。有 4 种方法用于执行大小写转换,即

  • toLowerCase()
  • toLocaleLowerCase()
  • toUpperCase()
  • toLocaleUpperCase()

从名字上能够看出它们的用途,前两种方法用于把字符串转换成全小写的,后两种方法用于把字符串转换成全大写的。

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 原始值上,由于它们是伪对象。

相关文章
相关标签/搜索