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()方法

最常用到的字符串截取方法。
接收一个或两个参数:要截取的开始位置和结束位置;只传入一个参数时,结束位置为字符串末尾。
传入参数为负数时,视为传入 0。
传入的第一个参数大于第二个时,会自动把比较小的参数放在前面
返回值为一个新字符串,内容是从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 位置为字符串最后一个字符
若传入的第二个参数小于或等于0,返回值为空字符串。

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"
Comments
Write a Comment