字符串
字符串就是一个或多个排列在一起的字符,放在单引号或双引号之中。
'abc'
"abc"
length属性
js里的字符串类似于数组,都是一个一个字符拼凑在一起组成的,因此可以用length属性取得字符串的长度
var str = "hello"
str.length; // 5
字符串常用的一些方法
1. charAt():从一个字符串中返回指定的字符
str.charAt(index)
index
一个介于0 和字符串长度减1之间的整数。
(0~length-1)如果没有提供索引,charAt() 将使用0。如果指定的 index 值超出了该范围,则返回一个空字符串。
2. indexOf()
str.indexOf(searchValue[, fromIndex])
searchValue
一个字符串表示被查找的值。
fromIndex
可选表示调用该方法的字符串中开始查找的位置。可以是任意整数。默认值为 0。如果
fromIndex < 0
则查找整个字符串(如同传进了 0)。如果
fromIndex >= str.length
,则该方法返回 -1,除非被查找的字符串是一个空字符串,此时返回 str.length。
"Blue Whale".indexOf("Blue"); // returns 0
"Blue Whale".indexOf("Blute"); // returns -1
"Blue Whale".indexOf("Whale", 0); // returns 5
"Blue Whale".indexOf("Whale", 5); // returns 5
"Blue Whale".indexOf("", 9); // returns 9
"Blue Whale".indexOf("", 10); // returns 10
"Blue Whale".indexOf("", 11); // returns 10
3. lastIndexOf():方法返回指定值在调用该方法的字符串中最后出现的位置,如果没找到则返回 -1。从该字符串的后面向前查找,从 fromIndex
处开始。
str.lastIndexOf(searchValue[, fromIndex])
searchValue
一个字符串,表示被查找的值。
fromIndex
从调用该方法字符串的此位置处开始查找。可以是任意整数。默认值为
str.length
。如果为负值,则被看作 0。如果
fromIndex > str.length
,则
fromIndex
被看作
str.length
。
"canal".lastIndexOf("a") // returns 3
"canal".lastIndexOf("a",2) // returns 1
"canal".lastIndexOf("a",0) // returns -1
"canal".lastIndexOf("x") // returns -1
4. substring()方法返回一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集。
str.substring(indexStart[, indexEnd])
indexStart
一个 0 到字符串长度之间的整数。
indexEnd
可选。一个 0 到字符串长度之间的整数。
描述
substring
提取从 indexStart
到 indexEnd
(不包括)之间的字符。特别地:
- 如果
indexStart
等于indexEnd
,substring
返回一个空字符串。 - 如果省略
indexEnd
,substring
提取字符一直到字符串末尾。 - 如果任一参数小于 0 或为
NaN
,则被当作 0。 - 如果任一参数大于
stringName.length
,则被当作stringName.length
。
如果 indexStart
大于 indexEnd
,则 substring
的执行效果就像两个参数调换了一样。例如,str.substring(1, 0) == str.substring(0, 1)
。
5. slice()方法提取一个字符串的一部分,并返回一新的字符串。
str.slice(beginSlice[, endSlice])
beginSlice
从该索引(以 0 为基数)处开始提取原字符串中的字符。如果值为负数,会被当做
sourceLength + beginSlice
看待,这里的
sourceLength 是字符串的长度
(例如, 如果
beginSlice
是 -3 则看作是:
sourceLength - 3
)
endSlice
可选。在该索引(以 0 为基数)处结束提取字符串。如果省略该参数,
slice
会一直提取到字符串末尾。
如果该参数为负数,则被看作是 sourceLength + endSlice,这里的 sourceLength 就是字符串的长度(例如,如果 endSlice 是 -3,则是, sourceLength - 3)。
返回一个从原字符串中提取出来的新字符串
slice()
提取的新字符串包括beginSlice
但不包括 endSlice。
例1:str.slice(1, 4)
提取新字符串从第二个字符到第四个 (字符索引值为 1, 2, 和 3)。
例2:str.slice(2, -1)
提取第三个字符到倒数第二个字符。
6. substr() 方法返回一个字符串中从指定位置开始到指定字符数的字符。
str.substr(start[, length])
-
开始提取字符的位置。如果为负值,则被看作
strLength +
start,其中
strLength
为字符串的长度(例如,如果start
为-3,则被看作
strLength + (-3))。
start
length
可选。提取的字符数
描述
start
是一个字符的索引。首字符的索引为 0,最后一个字符的索引为 字符串的长度减去1。substr
从 start
位置开始提取字符,提取 length
个字符(或直到字符串的末尾)。
如果 start
为正值,且大于或等于字符串的长度,则 substr
返回一个空字符串。
如果 start
为负值,则 substr
把它作为从字符串末尾开始的一个字符索引。如果 start
为负值且 abs(start)
大于字符串的长度,则 substr
使用 0 作为开始提取的索引。注意负的 start
参数不被 Microsoft JScript 所支持。
如果 length
为 0 或负值,则 substr
返回一个空字符串。如果忽略 length
,则 substr
提取字符,直到字符串末尾。
7. replace()法返回一个由替换值替换一些或所有匹配的模式后的新字符串。模式可以是一个字符串或者一个正则表达式, 替换值可以是一个字符串或者一个每次匹配都要调用的函数。
str.replace(regexp|substr, newSubStr|function)
-
一个
RegExp
对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。
regexp
(pattern)
-
一个要被
newSubStr
替换的
字符串
。其被视为一整个字符串,而不是一个正则表达式。仅仅是第一个匹配会被替换。
substr
(pattern)
- 一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。参考下面的 指定一个函数作为参数。
function
(replacement)
返回值
一个部分或全部匹配由替代模式所取代的新的字符串。
var re = /apples/gi;
var str = "Apples are round, and apples are juicy.";
var newstr = str.replace(re, "oranges");
// oranges are round, and oranges are juicy.
console.log(newstr);
8. search()方法执行正则表达式和 String
对象之间的一个搜索匹配。
str.search(regexp)
参数
- 一个 正则表达式(regular expression)对象。如果传入一个非正则表达式对象,则会使用 new RegExp(obj) 隐式地将其转换为正则表达式对象。
regexp
返回值
如果匹配成功,则 search()
返回正则表达式在字符串中首次匹配项的索引。否则,返回 -1。
9. match()当一个字符串与一个正则表达式匹配时, match()
方法检索匹配项。
str.match(regexp);
参数
-
一个
正则表达式对象。如果传入一个非正则表达式对象,则会隐式地使用
new RegExp(obj)
将其转换为一个RegExp
。如果你未提供任何参数,直接使用 match() ,那么你会得到一个包含空字符串的Array
:[""] 。
regexp
返回值
- 如果字符串匹配到了表达式,会返回一个数组,数组的第一项是进行匹配完整的字符串,之后的项是用圆括号捕获的结果。如果没有匹配到,返回null
array
10. split()方法使用指定的分隔符字符串将一个String
对象分割成字符串数组,以将字符串分隔为子字符串,以确定每个拆分的位置。
str.split([separator[, limit]])
参数
-
指定表示每个拆分应发生的点的字符串。
separator
可以是一个字符串或 正则表达式。 如果纯文本分隔符包含多个字符,则必须找到整个字符串来表示分割点。如果在str中省略或不出现分隔符,则返回的数组包含一个由整个字符串组成的元素。如果分隔符为空字符串,则将str原字符串中每个字符的数组形式返回。 - 一个整数,限定返回的分割片段数量。当提供此参数时,split 方法会在指定分隔符的每次出现时分割该字符串,但在限制条目已放入数组时停止。如果在达到指定限制之前达到字符串的末尾,它可能仍然包含少于限制的条目。新数组中不返回剩下的文本。
separator
limit
返回值
An Array
of strings split at each point where the separator occurs in the given string.
"Webkit Moz O ms Khtml".split( " " ) // ["Webkit", "Moz", "O", "ms", "Khtml"]
11. trim()方法会从一个字符串的两端删除空白字符。在这个上下文中的空白字符是所有的空白字符 (space, tab, no-break space 等) 以及所有行终止符字符(如 LF,CR)。
str.trim()
trim() 方法
并不影响原字符串本身,它返回的是一个新的字符串。
12. toLowerCase()
13. toUpperCase()