JS 字符串方法的笔记
字符串
获取方法
charAt() 方法
charAt(index)
方法,传入值是一个索引,返回值为一个字符,如果未找到,则返回一个空字符串
var str = 'abcde';
console.log(str.charAt(2)); // c
console.log(str.charAt(8)); // 空字符串
charCodeAt()方法
传入值是一个索引,返回指定位置的字符的Unicode编码;和charAt()
方法类似,区别是一个返回字符,一个返回字符的编码
var str = 'abcde';
console.log(str.charCodeAt(0)); //返回97
fromCharCode()方法
fromCharCode()接收一个或多个Unicode值,然后返回一个字符串。
var str = String.fromCharCode(97, 98, 99, 100, 101)
console.log(str); //返回abcde
查找方法
indexOf()方法
indexOf()方法
用来检索指定的字符串值在字符串中首次出现的位置。
可以接收一个或两个参数,第一个参数表示要查找的字符串,第二个参数表示开始查找的位置,默认从起始位置开始查找
var str = 'abcdea';
str.indexOf('a'); // 0
str.indexOf('a',1) // 5
str.indexOf('cde') // 2
lastIndexOf()方法
lastIndexOf()语法与indexOf()类似,它返回的是一个指定的子字符串值最后出现的位置,其检索顺序是从后向前。
var str = 'abcdeab';
console.log(str.lastIndexOf('a')); // 5
console.log(str.lastIndexOf('a', 3)); //0 从第索引3的位置往前检索
console.log(str.lastIndexOf('ab')); // 5
search()方法
用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
传入值可以是一个字符串,也可以是一个正则表达式。
返回值为第一个匹配的子字符串的起始位置,如果没有匹配的,则返回-1。
var str = 'abcDEF';
console.log(str.search('c')); // 2
console.log(str.search('d')); // -1
console.log(str.search(/d/i)); // 3
match()方法
在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
传入值是子字符串或是没有进行全局匹配的正则表达式。
返回一个数组,该数组的第0个元素存放的是匹配文本,返回的数组含有两个对象属性index和input,分别表示匹配文本的起始字符索引和对元字符串的引用。
若是没有匹配到,则返回 null
var str = '1a2b3c4d5e';
console.log(str.match('h')); // null
console.log(str.match('b')); // ["b", index: 3, input: "1a2b3c4d5e"]
console.log(str.match(/b/)); // ["b", index: 3, input: "1a2b3c4d5e"]
截取方法
substring()方法
最常用到的字符串截取方法。
接收一个或两个参数:要截取的开始位置和结束位置;只传入一个参数时,结束位置为字符串末尾。
返回值为一个新字符串,内容是从start处到end-1处的所有字符。
var str = '01234567';
console.log(str.substring(3,5)); // 34
console.log(str.substring(3)); // 34567
console.log(str.substring(-1)); // 01234567
console.log(str.substring(5,3)); // 34
slice()方法
和 substring
方法类似,但是可以传入负数作为参数。
如果参数是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符。
传入的第一个参数大于或者等于第二个参数时,会返回一个空字符串
var str = 'abcdefg';
console.log(str.slice(1, 4)); // bcd
console.log(str.slice(-3, -1)); // ef
console.log(str.slice(1, -1)); // bcdef
console.log(str.slice(-1, -3)); //返回空字符串
substr()方法
用于截取字符串。
可以传入一个或者两个参数,第一个参数表示开始位置的索引,第二个参数表示截取字符串的长度。
若只传入一个参数,则从开始位置一直取到字符串末尾为止。
若传入截取长度大于实际长度,则截取到字符串末尾为止。
若传入值的开始位置为负数,则从字符串末尾开始算起,即 -1 位置为字符串最后一个字符
var str = 'abcdefg';
console.log(str.substr(1)); // bcdefg
console.log(str.substr(1,3)); // bcd
console.log(str.substr(1,100)); // bcdefg
console.log(str.substr(-1)); // g
console.log(str.substr(1, 0)); // 空字符串
其他方法
replace()方法
用来进行字符串替换操作,它可以接收两个参数,前者为被替换的子字符串(可以是正则),后者为用来替换的文本。
若第一个参数为字符串或者非全局匹配的正则,那么替换只执行一次。
若第一个参数为全局匹配的正则,那么会进行多次替换
var str = 'abcdeabcde';
console.log(str.replace('a', 'A')); // Abcdeabcde
console.log(str.replace(/a/, 'A')); // Abcdeabcde
var str = 'abcdeabcdeABCDE';
console.log(str.replace(/a/g, 'A')); //返回AbcdeAbcdeABCDE
console.log(str.replace(/a/gi, '$')); //返回$bcde$bcde$BCDE
split()方法
用于把一个字符串分割成字符串数组。
可以接收两个参数。第一个参数表示分割位置(参考符)或正则表达式,第二个参数表示返回数组的允许最大长度(一般情况下不设置)。
var str = 'a|b|c|d|e';
console.log(str.split('|')); //返回["a", "b", "c", "d", "e"]
console.log(str.split('|', 3)); //返回["a", "b", "c"]
console.log(str.split('')); //返回["a", "|", "b", "|", "c", "|", "d", "|", "e"]
var str = 'a1b2c3d4e';
console.log(str.split(/\d/)); //返回["a", "b", "c", "d", "e"]
) toLowerCase()和toUpperCase()
toLowerCase()方法可以把字符串中的大写字母转换为小写。
toUpperCase()方法可以把字符串中的小写字母转换为大写。
var str = 'JavaScript';
console.log(str.toLowerCase()); //返回javascript
console.log(str.toUpperCase()); //返回JAVASCRIPT
toFixed()
toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。
NumberObject.toFixed(num)
num
是 0 ~ 20 之间的值,包括 0 和 20;缺省值是 0;
当调用该方法的对象不是 Number 时抛出 TypeError 异常
(123).toFixed(2) // "123.00"