欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

字符串扩展方法

程序员文章站 2022-03-08 23:28:16
...

新增特性

Unicode表示法,遍历接口,模板字符串,新增方法(10种)

Unicode表示法

{
    console.log('a',`\u0061`)
    //a a
    console.log('s',`\u20BB7`)
    //s ₻7
    console.log('s',`\u{20BB7}`)
    //s ????
    // 当值超过2个字节的时候,只截取前四个当成一个字符,需要用大括号包起来
}

es5处理unicode码

{
    //es5处理unicode码
    let s='????';
    console.log(s.length)
    //2
    console.log(s.charAt(0))
    console.log(s.charAt(1))
    console.log(s.charCodeAt(0))
    console.log(s.charCodeAt(1))
    //� � 55362 57271

    //当值超过2个字节的时候,计算长度的时候会计算成2
}

es6处理unicode码

{
    //es6处理unicode码
    let s='????a';
    console.log(s.length)
    //3
    console.log(s.codePointAt(0))
    console.log(s.codePointAt(1))
    console.log(s.codePointAt(2))
    console.log(s.codePointAt(0).toString(16))
    //134071 57271 97 20bb7

}
{
    console.log(String.fromCharCode('0x20bb7'))
    console.log(String.fromCodePoint('0x20bb7'))
    //ஷ ????
}

字符串遍历接口


{
    //es5字符串遍历
    let str='\u{20bb7}abc';
    for(let i=0;i<str.length;i++){
        console.log('es5',str[i])
    }
    // es5 �
    // es5 �
    // es5 a
    // es5 b
    // es5 c
    for(let code of str){
        console.log('es6',code)
    }
    // es6 ????
    // es6 a
    // es6 b
    // es6 c
}

es6中新增加了let a of str的方法,用于处理字符串的遍历,能够解决处理字符串中某个字符大于2个字节的情况。

includes,startsWith和endsWith,repeat方法

includes判断字符串中是否包含某个字符,startsWith判断某个字符是不是起始,endsWith判断某个字符是不是结束字符,repeat字符串重复

{
    let str='string';
    console.log(str.includes('r'))
    console.log(str.includes('v'))
    //true false
    console.log(str.startsWith('s'))
    console.log(str.endsWith('ng'))
    //true true
    //字符串复制
    let str='abc';
    console.log(str.repeat(2));
    //abcabc
}

模板字符串

{
    let name='list';
    let info='hello world';
    let m=`这是模板字符串${name},${info}`;
    console.log(m)
    //这是模板字符串list,hello world
}

必须是${}的形式

es7草案,补白功能。padStart和padEnd

{
    //向前补白
    console.log('1'.padStart(2,'0'));
    //01
    //向后补白
    console.log('1'.padEnd(2,'0'));
    //10
}

模板字符串

{
    let user={
        name:'list',
        info:'hello world'
    };
    abc`i am $(user.name),${user.info}`;
    function abc(s,v1,v2){
        console.log(s,v1,v2);
        return s+v1+v2;
    }
}

String.raw方法

//raw对所有的/进行转义
{
    console.log(String.raw`Hi\n${1+2}`)
    //Hi\n3
    console.log(`Hi\n${1+2}`)
    //Hi
    //3
}