首页 > 其他分享 >js字符串详解(二):字符串API

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

时间:2023-03-09 17:32:01浏览次数:32  
标签:返回 关键词 js var 正则 API str 字符串


所有字符串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("")

标签:返回,关键词,js,var,正则,API,str,字符串
From: https://blog.51cto.com/u_16000296/6111067

相关文章

  • js正则表达式详解(一):语法
    什么是:专门定义一类字符串统一规则的表达式   何时:1.按照指定规则模糊查找一类关键词时      2.表单中验证输入项的格式  如何:语法:   ......
  • js正则表达式详解(二):RegExp的Api
       验证:检查字符串是否完全符合正则表达式的要求!   如何:varbool=reg.test(待检测字符串)     强调:只要验证,reg中必须前加^后加$    ......
  • 打造让别人眼前一亮的Portfolio(从0到1) - 使用React和Three JS
        【打造让别人眼前一亮的Portfolio(从0到1)-使用React和ThreeJS】https://www.bilibili.com/video/BV1D54y1u7a7?vd_source=9dbcff019fe7cd087d0ea14c75f1546......
  • 算法训练Day9| LeetCode28. 找出字符串中第一个匹配项的下标(KMP算法)
    28. 找出字符串中第一个匹配项的下标给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从0开始)。如果......
  • json解析异常显示{“$ref“:“$[0]“}
    在编写测试代码实现一个组织架构树的功能时,部门的parent部门没有显示,出现了json解析异常错误[{“ref":"ref":"ref":"[0]”}][{“ref":"ref":"ref":"[1]”}]......
  • 【js】CommonJS、AMD、CMD三种规范
    前言这三个规范都是为Js模块化加载而生的,使模块能够按需加载,使系统同庞杂的代码得到组织和管理。模块化的管理代码使多人开发得到了更好的合作一、CommonJS是一种为JS的......
  • 获取时间字符串
    importtimeimportdatetimedefget_time_str():#定义文件名,年月日时分秒随机数#fn=time.strftime('%Y%m%d%H%M%S')#fn=fn+'_%d'%random.r......
  • Node.js 子进程 cluster
    多进程HTTPServerimporthttpfrom'http';importclusterfrom'cluster';import{pid,ppid}from'process';functionserver(){letport=9999;l......
  • Go字符串方法
    字符串常用方法都在strings包中高性能字符串拼接varbuilderstrings.Builderbuilder.WriteString("用户名")builder.WriteByte(97)str:=builder.String()fmt.......
  • <asp:RadioButtonList > JS
    <asp:RadioButtonListID="radlDAYINBZ"runat="server"RepeatDirection="Horizontal"RepeatLayout="Flow"></asp:RadioButtonList>判断是否选中if($('input:radio[name=......