js字符串的方法及详解

    // 1、charAt 返回指定索引出的字符
    var str = "asdfghjk";
    var s = str.charAt(1)
    console.log(s) // s

    // 2. 判断一个字符第一次出现在某个字符串的索引,如果包含返回它的索引,如果不包含返回-1
    str.indexOf('q') //-1
    str.indexOf('a') //0

    //3.lastIndexOf 判断一个字符最后一次出现在某个字符串的索引,如果包含返回它的索引,如果不包含 
    // 返回-1.

    // 4.concat拼接2个字符串,返回一个新字符串,对原有字符串没有任何改变。
    var str1 = "asdf";
    var str2 = "qwer";
    var str3 = str1.concat(str2);
    console.log(str1, str2, str3); //asdf qwer asdfqwer

    // 5.split 切割成数组
    var strArr = 'hjdkl';
    var newArr = strArr.split('');
    console.log(newArr) //["h", "j", "d", "k", "l"]

    // 6.substr(n,m) 从索引n开始,截取m个字符,将截取的字符返回,对原字符串没有任何改变。
    var sub = 'abcdefghig';
    console.log(sub.substr(2, 3)) //cde
    console.log(sub) //abcdefghig

    // 7.substring(n,m) 从索引n开始,截取到索引m,不包括m.将截取的字符返回,对原字符串没有任何改变.
    // 会取start和end中较小的值为start,二者相等返回空字符串,任何一个参数为负数被替换为0(即该值 
    //会成为start参数)
    var subs = 'abcdefghig';
    console.log(subs.substring(3, 2)) // c  会取start和end中较小的值为start
    console.log(subs.substring(2, 3)) // c  会取start和end中较小的值为start
    console.log(subs.substring(2, 0)) // ab  任何一个参数为负数被替换为0(即该值会成为start参 
    //数)
    console.log(subs.substring(0, 2)) // ab  任何一个参数为负数被替换为0(即该值会成为start参 
    //数)
    console.log(subs) //abcdefghig

    // 8.slice(n,m)   从索引n开始,截取到索引m,不包括m.将截取的字符返回,对原字符串没有任何改变.
    // slice中的start如果为负数,会从尾部算起,-1表示倒数第一个,-2表示倒数第2个,此时end必须为        
    //负数,并且是大于start的负数,否则返回空字符串
    // slice的end如果为负数,同样从尾部算起,如果其绝对值超过原字符串长度或者为0,返回空字符串
    var subsl = 'abcdefghig';
    console.log(subsl.slice(2, 3)) // c
    console.log(subsl.slice(-2, -1)) // i  start如果为负数,会从尾部算起,-1表示倒数第一    
    //个,-2表示倒数第2个,此时end必须为负数,并且是大于start的负数,否则返回空字符串
    console.log(subsl.slice(2, -1)) // cdefghi  end如果为负数,同样从尾部算起,如果其绝对值超 
    //过原字符串长度或者为0,返回空字符串
    console.log(subsl.slice(2, -9)) // null  end如果为负数,同样从尾部算起,如果其绝对值超过 
    //原字符串长度或者为0,返回空字符串
    console.log(subsl) //abcdefghig

    // 9.replace('a',1);  替换指定字符,返回替换后新的字符串,对原有字符串有改变。(第一个参数可 
   //以是正则表达式) 只能替换一次 ,配合正则模式修饰符g使用
    var strR = 'aaaaee';  
    var reg = /a/g;  
    console.log(strR.replace(reg, 1)); //"1111ee"

    // 10.match() 可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。把找到的字符放在数 
    //组里,返回一个数组。
    var strM = 'aaaa3ed33';  
    var regm = /a/g;  
    strM.match(regm); //["a", "a", "a", "a"]

    // ES6新加的字符串的方法

    // 1.for..of  字符串的遍历器接口
    for (let i of 'foo') {
      console.log(i)
    }
    // "f"
    // "o"
    // "o"

    // 2.at()  返回指定索引处的字符
    'abc'.at(0) // "a"
    // 5.includes():返回布尔值,表示是否找到了参数字符串。这三个方法都支持第二个参数,表示开始 
      //搜索的位置。
    // 6.startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。这三个方法都支持第二个参 
    //数,表示开始搜索的位置。
    // 7.endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。这三个方法都支持第二个参 
    //数,表示开始搜索的位置。
    var s = 'Hello world!';

    s.startsWith('world', 6) // true
    s.endsWith('Hello', 5) // true
    s.includes('Hello', 6) // false

    // 8.repeat()  方法返回一个新字符串,表示将原字符串重复n次。

    'x'.repeat(3) // "xxx"
    'hello'.repeat(2) // "hellohello"
    'na'.repeat(0) // ""

    // 9.padStart(),padEnd()字符串补全长度的功能
    //  padStart()用于头部补全

    //  padEnd()用于尾部补全

    // padStart和padEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补 
    //全的字符串。

    'x'.padStart(5, 'ab') // 'ababx'
    'x'.padStart(4, 'ab') // 'abax'

    'x'.padEnd(5, 'ab') // 'xabab'
    'x'.padEnd(4, 'ab') // 'xaba'
    // 如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。

    'xxx'.padStart(2, 'ab') // 'xxx'
    'xxx'.padEnd(2, 'ab') // 'xxx'
    // 如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全 
    //字符串。

    'abc'.padStart(10, '0123456789')
    // 如果省略第二个参数,默认使用空格补全长度。

    'x'.padStart(4) // '   x'
    'x'.padEnd(4) // 'x   '

猜你喜欢

转载自blog.csdn.net/lbpro0412/article/details/81237534