js字符串详解(二):字符串API

所有字符串API都无权修改原字符串,只能返回新字符串!

转换


  1.大小写转换: 将字符串中所有英文字母转为统一的大小写
      何时: 只要不区分大小写时,都要先转为一致的大小写,再判断。 比如: 用户名,邮箱地址,验证码
      如何: str.toUpperCase() //都转大写
               str.toLowerCase() //都转小写

  2.得指定位置的字符: str[i]
       var char=str.charAt(i);
  3.获得指定字符的unicode号: 
       var unicode=str.charCodeAt(i); //省略i,默认是0
  4.将unicode号反向转回文字
        var char=String.fromCharCode(unicode);

  5. 选取子字符串: str.slice(starti,endi+1)
       str.substring(starti,endi+1) 不支持负数参数
       str.substr(starti,n): 选取starti开始的n个元素

 查找关键词: 4种API(第四种为正则的Api)


   1. 查找一个固定的关键词出现的位置:
       var i=str.indexOf("关键词",fromi)
         在str中,从fromi位置开始查找"关键词"的位置
         如果找到,返回关键词所在位置的下标
                找不到,返回-1
         简写: 省略fromi,默认从0开始
       专门找最后一个关键词的位置: 
       var i=str.lastIndexOf("关键词")
         在str中,找最后一个关键词出现的位置

      问题: 只能找第一个关键词
      解决: 正则表达式: 

   2. 使用正则表达式查找指定的一类关键词的位置: 
       按模式匹配: 
       var i=str.search(/正则表达式/);
           在str中查找第一个符合正则表达式要求的关键词的位置
           返回值: 找到的关键词的下标, 如果找不到返回-1
       何时: 仅判断是否包含敏感词时,就用search
                如果返回不是-1,说明包含,否则说明没找到
       忽略大小写: /正则/i
       问题: 1. 只能获得第一个的位置,不能获得所有敏感词
                2. 只能返回位置,不能返回内容


    3. 使用正则表达式查找指定的一类关键词的内容: 
        var arr=str.match(/正则/ig);
        默认只找第一个,找所有,必须加g
        返回值: 所有敏感词组成的数组
               没找到返回null!
           强调: 如果一个API有可能返回null,就必须先判断不是null,再使用!
        arr.length 表示找到的关键词个数
        问题: 仅返回所有关键词的内容,无法返回每个关键词位置
    4. 即找所有关键词内容,又找每个关键词的位置?
        reg.exec();

替换: 将字符串中所有敏感词替换为新内容


    基本替换: 
    str=str.replace(/正则/ig,“替换值”)
           问题: 不能根据不同的关键词,选择不同的值替换
     解决: 高级替换: 
      str=str.replace(/正则/ig,function(kw){
          //kw会自动获得本次找到的关键词内容
          return //根据不同kw,返回不同的替换值
      })
     何时: 只要根据不同的关键词,替换不同内容时
  衍生: 
    删除: 将关键词替换为""
    格式化: 将原字符串重新拼接为新的格式
      比如: "19831226" => "1983年12月26日"
      2步: 1. 正则将原字符串分组
                 /(\d{4})(\d{2})(\d{2})/
               //    1         2         3
             2. 使用简单替换: str.replace(/正则/,"...$n...")
                  $n可自动获得第n个分组的子内容
                    n从1开始


  切割: 将原字符串,按指定字符,分隔为多个子字符串


      如何: var substrs=str.split(/正则/)
         返回切割后的多个子字符串组成的数组
                结果中,不再包含分隔符
      固定套路: 将字符串打散成字符数组: var chars=str.split("")

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值