美文网首页
字符串中常用方法

字符串中常用方法

作者: Artifacts | 来源:发表于2019-09-16 17:01 被阅读0次

所有用单引号、双引号、反引号包起来的都是字符串

let str = 'adgjloutew'
    // 每一个字符串都是由零到多个字符组成
    str.length //=>字符串长度
    str[0] //=>获取索引为零(第一个)字符
    str[str.length - 1]//=>获取最后一个字符str.length - 1最后一项索引
    str[10000] //=>undefined 不存在

    // 循环输出字符串中的每一个字符串
    for(let i = 0;i < str.length;i++){
        let char = str[i];
        console.log(char);
    }

charAt / charcodeAt

/*
     * charAt: 根据索引获取指定位置的字符
     * charcodeAt:获取指定字符的ASCII码值(Unicode编码值)
     *  @paramas:
     *   n [number] 获取字符指定的索引
     *  @return:
     * 返回查找到的字符
     * 找不到返回空字符而不是undefined,或者对应编码值
     */
    let str = 'zweftghujiko';
    console.log(str.charAt(0));//=> 'z'
    console.log(str[0]);//=> undefined
    console.log(str.charAt(1000));//=> ''
    console.log(str[999]);//=> undefined
    console.log(str.charCodeAt(0));//=> 122 
    console.log(string.fromCharCode(122));//=> 'x' 

substr/substring/slice

/*
     * 都是为了实现字符串的截取(在原来字符串中查找到自己想要的)
     * substr(n,m):从索引n开始截取m个字符,m不写截取到末尾(后面方法也是)
     * substring(n,m):从索引n开始找到索引为m处(不含m)
     * slice(n,m):和substring一样,都是找到索引为m处,但是slice可以支持负数作为索引,其余两个方法是不可以的
     */
    console.log(str.substr(3,7));//=>'fengrty'
    console.log(str.substring(3,7));//=>'feng'
    console.log(str.slice(3,7));//=>'feng'
    console.log(str.substring(-7,-3));//=>'' substring不支持负数索引
    console.log(str.slice(-7,-3));//=>'ngrt' slice支持负数索引 =>快捷
    //查找:负数索引,我们可以按照str.length+负索引 的方式找 =>slice(26-7,26-3) =>slice(19,23)

indexOf/lastIndexof/includes

 /*
     * 验证字符是否存在
     *   indexOf(x,y):获取x第一次出现位置的索引,y是控制查找的起始位置索引
     *   lastIndexOf(x):最后依次出现位置的索引
     *   => 没有这个字符,返回的结果是-1
     */
    let str = 'zxcvbnmlkjhgfnm';
    console.log(str.indexOf('n'));//=>5
    console.log(str.lastIndexOf('n'));//=>13

    console.log(str.indexOf('@'));//=>-1  不存在返回-1
    if(str.indexOf('@') === -1){
        //字符串中不包含@这个字符
    }

    console.log(str.indexOf('bnm'));//=>4 验证整体第一次出现的位置,返回
    //的索引是第一个字符所在位置的索引值
    console.log(str.indexOf('mlj'));//-1 整体不存在
    console.log(str.indexOf('n',7));//=>13  查找字符串索引7及之后的字符串中
    //,n第一次出现的位置索引

    if(!str.includes('@')){
        console.log('当前字符串不包含@');
    }

toUpperCase/toLowerCase

    /*
     * 字符串中字母的大小写转换
     *   toUpperCase:转大写
     *   toLowerCase:转小写
     */
    let str = 'zxcvbnmlkjhgfnm';
    str.toUpperCase();
    console.log(str);//=>'ZXCVBNMLKJHGFNM'

    str = str.toLowerCase();
    console.log(str);//'zxcvbnmlkjhgfnm'
     
    // 第一个字母大写,其余小写(首字母大写)
    str = str.substr(0,1).toUpperCase()+str.substr(1);

split

/*
     * split([分隔符]):把字符串按照指定的分隔符拆分成数组(和数组中join对应)
     * split支持传递正则表达式
     */
    // 需求:把|分隔符变为,分隔符
    let str = 'zxcv|bnmlk|jhgf';
    let ary = str.split('|');//=> ["zxcv","bnmlk","jhgf"]
    str = ary.join(',');
    console.log(str);//=>"zxcv,bnmlk,jhgf"

    str = str.toLowerCase();
    console.log(str);//'zxcvbnmlkjhgf'

replace

    /*
     * replace(新字符,老字符):实现字符串替换
     * split支持传递正则表达式
     */
    // 需求:把|分隔符变为,分隔符
    let str = 'zxcv@bnmlk@jhgf';
    str = str.replace('@','-');
    console.log(str);//=>"zxcv-bnmlk@jhgf"在不使用正则表达式的情况下,
    // 执行一次return只能替换一次字符

    str = str.replace(/@/g,'-');//使用正则
    console.log(str);//=>"zxcv-bnmlk-jhgf"

match
localcompare
trim/trimLeft/trimRight...
控制台输出String.prototype查看所有字符串中提供的方法

相关文章

网友评论

      本文标题:字符串中常用方法

      本文链接:https://www.haomeiwen.com/subject/yacfuctx.html