JavaScript字符串

JavaScript字符串,字符串是由特定字符集(通常是ASCII或Unicode字符集)里的字符所组成的序列,通常用于保存文本内容。

注意:字符串和数字
JavaScript会把作为字符串存储的数据和作为数字存储的数据区分开来,即便它们的字符是相同的。因此,包含了1个1和3个0的字符串”1000″,和数值1000是不同的。

字符串的定义是用一对单引号或一对双引号实现的:

var myString = "This is a string";

然而,记住,如果想要在字符串中使用双引号,那么需要用单引号来表示字符串的范围:

var myString = ′This is a "special" string′;

反之亦然,如果想要在字符串中使用一个单引号,那么需要确保用双引号把字符串括起来。如果忘记了,JavaScript将在想要结束字符串之前提前结束了字符串,并且这可能会导致一个错误:

var myString = ′This is Phil′s string′; // error: this string will terminate early

可以通过在字符串中转义字符来避免这个问题。稍后我们将学习转义序列。

可以用一对内容为空的引号定义空字符串:

var myString = "";

length属性

在JavaScript中,要获取一个字符串的长度是很简单的,直接查看length属性就可以了。length属性返回了字符串所包含的字符的数目:

var myString = "How long am I?";
alert(myString.length); // alerts 14

在操作字符串变量时,length属性的值会随之自动更新。

注意,length是一个只读的值。如果试图在代码或控制台中给它赋一个值,如下所示:

myString.length = 15;

这个值将保持不变。

转义序列

我们想放到字符串里的字符,有些可能没有相应的键盘按键,或是由于其他原因而成为不能在字符串中出现的特殊字符,比如制表符、换行符、定义字符串所用的单引号或双引号。为了在字符串里使用这些字符,必须用以反斜线(\)开头的字符组合来表示,让JavaScript把它们解释为正确的特殊字符。这种组合称为“转义序列”。

举例来说,我们想在字符串里添加一些换行符,从而让alert()方法使用这个字符串时,使之显示为多行:

var message = "IMPORTANT MESSAGE:\n\nError detected!\nPlease check your data";
alert(message);

插入转义序列后得到的结果,如图所示。

JavaScript字符串

常用的转义序列见表所示:

JavaScript字符串

字符串方法

string对象的完整属性和方法列表超出了本文的讨论范围,下表列出了比较重要的一部分。

JavaScript字符串

前面各章的范例里曾出现了用操作符“+”来连接字符串的情况,这称为字符串连接。JavaScript字符串的concat()函数还有其他一些功能:

var string1 = "The quick brown fox ";
var string2 = "jumps over the lazy dog";
var longString = string1.concat(string2);

提示:通过concat()返回一个新的字符串
用concat()方法连接的各个字符串,并不会被这个操作所改变。相反,JavaScript返回了一个新的字符串,它包含了连接后的内容。在JavaScript中,字符串是不可变的(immutable),换句话说,不能修改它们。所做的这一切,都是基于已有字符串的副本来生成一个新的字符串。不可变性不仅适用于字符串,JavaScript中的数字也是不可变的。

indexOf()
indexOf()函数可以查找子字符串(由一个或多个字符组成)在另一个字符串里第一次出现的位置,返回子字符串在目标字符串里的索引(位置);如果没有找到,就返回-1。

var string1 = "The quick brown fox";
string1.indexOf(′fox′)  //返回16
string1.indexOf(′dog′)  //返回-1

提示:字符串是基于0索引的
字符串里第1个字符的索引是0,而不是1。

lastIndexOf()
从名称可以看出,lastIndexOf()的工作方式类似于indexOf(),只是返回子字符串最后一次出现的位置,而不是第一次出现的位置。

repeat()
repeat()方法返回一个新的字符串,该字符串是将在其上调用的那个字符串的指定的那么多个副本数所组成的。所需的副本数作为参数传递给该方法:

var inStr = "lots and ";
var outStr = str.repeat(3); // outStr contains ′ lots and lots and lots and ′

replace()
replace()方法在一个字符串中搜索某一个字符串的匹配,并且返回一个新的字符串,其中,用一个指定的新子字符串替代搜索到的子字符串。

var string1 = "The quick brown fox";
var string2 = string1.replace("brown", "orange"); //string2现在是"the quick orange fox"

split()
split()方法把字符串分解为多个子字符串的一个数组,并且返回这个新数组。

var string1 = "The quick brown fox ";
var newArray = string1.split(" ")

提示:split()也是一个数组方法
学习了数组知识之后,读者能够更好地了解这个函数的用法。

substr()
substr()方法可以有一个或两个参数。
substr()从第一个参数指定的索引位置开始提取字符,返回一个新字符串。第二个参数指定了要提取的字符数量,这个参数是可选的。如果没有指定,就会提取从起始位置到字符串结束的全部字符。

var string1 = "The quick brown fox";
var sub1 = string1.substr(4,11);   //提取"quick brown"
var sub2 = string1.substr(4);  //提取"quick brown fox"

toLowerCase() and toUpperCase()
toLowerCase()toUpperCase()方法把字符串转换为全部小写或全部大写。

var string1 = "The quick brown fox";
var sub1 = string1.toLowerCase();  //sub1的内容是"the quick brown fox"
var sub2 = string1.toUpperCase();  //sub2的内容是"THE QUICK BROWN FOX"

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!