字符串的方法

436 阅读3分钟

1.charAt:方法返回指定位置的字符,参数是从0开始编号的位置。

var s = new String('abc');

s.charAt(1) // "b" s.charAt(s.length - 1) // "c" 这个方法完全可以用数组下标替代。

'abc'.charAt(1) // "b" 'abc'[1] // "b"

2:slice方法用于从原字符串取出子字符串并返回,不改变原字符串。它的第一个参数是子字符串的开始位置,第二个参数是子字符串的结束位置(不含该位置)。

'JavaScript'.slice(0, 4) // "Java" 如果省略第二个参数,则表示子字符串一直到原字符串结束。

'JavaScript'.slice(4) // "Script" 如果参数是负值,表示从结尾开始倒数计算的位置,即该负值加上字符串长度。

'JavaScript'.slice(-6) // "Script" 'JavaScript'.slice(0, -6) // "Java" 'JavaScript'.slice(-2, -1) // "p" 如果第一个参数大于第二个参数,slice方法返回一个空字符串。

'JavaScript'.slice(2, 1) //

3:substring方法用于从原字符串取出子字符串并返回,不改变原字符串,跟slice方法很相像。它的第一个参数表示子字符串的开始位置,第二个位置表示结束位置(返回结果不含该位置)。

'JavaScript'.substring(0, 4) // "Java" 如果省略第二个参数,则表示子字符串一直到原字符串的结束。

'JavaScript'.substring(4) // "Script" 如果第二个参数大于第一个参数,substring方法会自动更换两个参数的位置。

'JavaScript'.substring(10, 4) // "Script" // 等同于 'JavaScript'.substring(4, 10) // "Script"

4:substr方法用于从原字符串取出子字符串并返回,不改变原字符串,跟slice和substring方法的作用相同。

substr方法的第一个参数是子字符串的开始位置(从0开始计算),第二个参数是子字符串的长度。

'JavaScript'.substr(4, 6) // "Script" 如果省略第二个参数,则表示子字符串一直到原字符串的结束。

'JavaScript'.substr(4) // "Script" 如果第一个参数是负数,表示倒数计算的字符位置。如果第二个参数是负数,将被自动转为0,因此会返回空字符串。

'JavaScript'.substr(-6) // "Script" 'JavaScript'.substr(4, -1) // "" 上面代码中,第二个例子的参数-1自动转为0,表示子字符串长度为0,所以返回空字符串

5:indexOf方法用于确定一个字符串在另一个字符串中第一次出现的位置,返回结果是匹配开始的位置。如果返回-1,就表示不匹配。

'hello world'.indexOf('o') // 4 'JavaScript'.indexOf('script') // -1 indexOf方法还可以接受第二个参数,表示从该位置开始向后匹配。

'hello world'.indexOf('o', 6) // 7 lastIndexOf方法的用法跟indexOf方法一致,主要的区别是lastIndexOf从尾部开始匹配,indexOf则是从头部开始匹配。

'hello world'.lastIndexOf('o') // 7 另外,lastIndexOf的第二个参数表示从该位置起向前匹配。

'hello world'.lastIndexOf('o', 6) // 4

6:trim方法用于去除字符串两端的空格,返回一个新字符串,不改变原字符串。

' hello world '.trim() // "hello world" 该方法去除的不仅是空格,还包括制表符(\t、\v)、换行符(\n)和回车符(\r)。

'\r\nabc \t'.trim() // 'abc'

7:toLowerCase方法用于将一个字符串全部转为小写,toUpperCase则是全部转为大写。它们都返回一个新字符串,不改变原字符串。

'Hello World'.toLowerCase() // "hello world"

'Hello World'.toUpperCase() // "HELLO WORLD"

8:replace方法用于替换匹配的子字符串,一般情况下只替换第一个匹配(除非使用带有g修饰符的正则表达式)。

'aaa'.replace('a', 'b') // "baa" 'aaa'.replace(/a/g, 'b') // "bbb"

9:split方法按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组。

'a|b|c'.split('|') // ["a", "b", "c"] 如果分割规则为空字符串,则返回数组的成员是原字符串的每一个字符。

'a|b|c'.split('') // ["a", "|", "b", "|", "c"]