(1)字符串长度
内建属性 length
可返回字符串的长度 string.length
(2)特殊字符
使用 \
转义字符。
代码 | 结果 |
---|---|
’ | 单引号 |
" | 双引号 |
\ | 反斜杠 |
\b | 退格键 |
\f | 换页 |
\n | 新行 |
\r | 回车 |
\t | 水平制表符 |
\v | 垂直制表符 |
(3)换行
对长字符串换行的最安全做法(但是有点慢)是使用字符串加法
document.getElementById("demo").innerHTML = "Hello" +
"Kitty!";
(4)字符串可以是对象
var firstName = new String("Bill")
不要把字符串创建为对象。它会拖慢执行速度。
当使用 ==
相等运算符时,相等字符串是相等的。
当使用 ===
运算符时,相等字符串是不相等的,因为 ===
运算符需要类型和值同时相等。
JavaScript 对象无法进行对比,比较两个 JavaScript 将始终返回 false
。
(5)查找字符串中的字符串
indexOf()
方法返回字符串中指定文本首次出现的索引(位置)。
JavaScript 从零计算位置。
lastIndexOf()
方法返回指定文本在字符串中最后一次出现的索引。
如果未找到文本, indexOf()
和 lastIndexOf()
均返回 -1
。
两种方法都接受作为检索起始位置的第二个参数。
indexOf()
方法向前进行检索(从头到尾)
lastIndexOf()
方法向后进行检索(从尾到头),这意味着:假如第二个参数是 50,则从位置 50 开始检索,直到字符串的起点。
(6)检索字符串中的字符串
search()
方法搜索特定值的字符串,并返回匹配的位置。
●indexOf() 与 search()这两种方法是不相等的
区别在于:
search()
方法无法设置第二个开始位置参数。
indexOf()
方法无法设置更强大的搜索值(正则表达式)。
(7)提取部分字符串
有三种提取部分字符串的方法:
●slice(start, end)
提取字符串的某个部分并在新字符串中返回被提取的部分。
start起始索引(开始位置),end终止索引(结束位置)
如果某个参数为负,则从字符串的结尾开始计数。
如果省略第二个参数,则该方法将裁剪字符串的剩余部分或者(负数)从结尾计数。
●substring(start, end)
substring()
类似于 slice()
。
不同之处在于 substring()
无法接受负的索引。
●substr(start, length)
substr()
类似于 slice()
。
不同之处在于第二个参数规定被提取部分的长度。
如果首个参数为负,则从字符串的结尾计算位置,直到最后。
第二个参数不能为负,因为它定义的是长度。
(8)替换字符串内容
replace()
方法用另一个值替换在字符串中指定的值。
replace()
方法不会改变调用它的字符串。它返回的是新字符串。
默认地,replace()
只替换首个匹配。
点击此处,查看例子
默认地,replace()
对大小写敏感。
如需执行大小写不敏感的替换,请使用正则表达式 /i(大小写不敏感):
str = "Please visit Microsoft!";
var n = str.replace(/MICROSOFT/i, "W3School");
如需替换所有匹配,请使用正则表达式的 g 标志(用于全局搜索):
str = "Please visit Microsoft and Microsoft!";
var n = str.replace(/Microsoft/g, "W3School");
(9)转换为大写和小写
toUpperCase()
把字符串转换为大写。
toLowerCase()
把字符串转换为小写。
(10)concat() 方法
concat()
连接两个或多个字符串,可用于代替加运算符。
所有字符串方法都会返回新字符串。它们不会修改原始字符串。
字符串是不可变的:字符串不能更改,只能替换。
(11)String.trim()方法
trim()
方法删除字符串两端的空白符。
(12)提取字符串字符
这是两个提取字符串字符的安全方法:
● charAt(position)
charAt()
方法返回字符串中指定下标(位置)的字符串。
●charCodeAt(position)
charCodeAt()
方法返回字符串中指定索引的字符 unicode 编码。
(13)属性访问(Property Access)
ECMAScript 5 (2009) 允许对字符串的属性访问 [ ]。
使用属性访问有点不太靠谱:
●不适用 Internet Explorer 7 或更早的版本
●它让字符串看起来像是数组(其实并不是)
●如果找不到字符,[ ]
返回 undefined
,而 charAt()
返回空字符串。
●它是只读的。str[0] = “A” 不会产生错误(但也不会工作!)
(14)把字符串转换为数组
可以通过 split() 将字符串转换(分割)为(字符串)数组。
语法:
stringObject.split(separator,howmany)
separator
:必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany
:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
var txt = "a,b,c,d,e"; // 字符串
txt.split(","); // 用逗号分隔
txt.split(" "); // 用空格分隔
txt.split("|"); // 用竖线分隔
txt.split(); //返回index[0]且值为原字符串,数组长度为1
txt.split("") //每个字符都用逗号分割,包括空格