日期:2014-05-16  浏览次数:20391 次

【转】JS中字符串的相关操作

JS中字符串的相关操作

一、字符串的创建

创建一个字符串有几种方法。最简单的是用引号将一组字符包含起来,可以将其赋值给一个字符串变量。

var myStr = "Hello, String!";

可以用双引号或单引号将字符串包含,但要注意,作为界定字符串的一对引号必须是相同的,不能混用。像var myString = "Fluffy is a pretty cat.'; 这样的声明就是非法的。
???
允许使用两种引号,使得某些操作变得简单,比如将一种嵌入另外一种:
???

document.write("<img src="/img/logo.jpg" height='30' width='100' alt='Logo'>");

我们在上面脚本创建了几个字符串,但本质上,它们并不是真正的字符串对象,准确地说,它们是字符串类型的值。要创建一个字符串对象,可使用如下语句:

var strObj = new String("Hello, String!");
???

使用typeof运算符查看会发现,上面的myStr类型为string,而strObj类型为object。
???
如果想知道字符串的长度,使用其length属性:string.length。
得到字符串的指定位置的字符使用方法:string.charAt(index);
二、字符串的拼接
问题:
???
将两个或多个字符串拼接为一个大的字符串
解决方案:
非常简单,就用一个"+"将两个字符串"相加":
???

var longString = "One piece " + "plus one more piece.";
???

要将多个字符串累积为一个字符串,还可以使用"+="操作符:
var result = "";
result += "My name is Anders"
result += " and my age is 25";???

????
要在字符串中添加换行符,需要使用转义字符"\n":
???
var confirmString = "You did not enter a response to the last " +
??????? "question.\n\nSubmit form anyway?";
var confirmValue = confirm(confirmString);

???
但这种方法只能用在像警告、确认对话框之类的情况下,如果将这段文本作为HTML内容呈现,就无效了,此时用"<br>"代替它:

var htmlString = "First line of string.<br>Second line of string.";
document.write(htmlString);
String对象还提供了方法concat(),它完成与"+"相同的功能:
???
string.concat(value1, value2, ...)
???
不过concat()方法显然不如"+"来得直观简洁。
?
三、访问字符串的子串
问题:
???
获得一字符串的一部分的副本。
解决方案:
???
使用substring()或slice()方法(NN4+, IE4+),下面说明它们的具体用法。
???
substring()的原型为: