2019web前端学习笔记——js高级(2)

一、String类型中的正则函数:

1. 查找敏感词: 4种:

(1)查找一个固定的敏感词出现的位置:

  var i=str.indexOf("敏感词")

(2)用正则模糊查找一个敏感词的位置:

  var i=str.search(/正则/i)

(3)要查找敏感词的内容: 2种:

①只查找第一个敏感词的内容和位置
    var arr=str.match(/正则/i)
     arr: [ "0": "我草", "index": 9 ]
   问题: 只能找一个敏感词!
②查找字符串中所有符合条件的敏感词的内容:
    var arr=str.match(/正则/ig)  global
     arr: [ "我艹", "我槽" ].length = 2
            0     1
    强调: 只包含关键词的内容,不再包含关键词的位置
    如果找不到,返回null
    强调: 如果一个函数可能返回null,就应该先验证返回值不是null,再使用!

(4)查找所有关键词的内容和位置:

 reg.exec()

2. 替换: 2种:

(1)简单替换: 将所有关键词都替换为一致的新值

str=str.replace(/正则/ig, “新值”);
将str中所有符合正则要求的关键词都替换为指定的"新值"
强调: 所有字符串都是不可变类型, 所有字符串的函数都无权直接修改原字符串,只能返回新字符串
所以,如果想获得新字符串,必须自己用变量接一下。
比如: str=str.replace(/小[\u4e00-\u9fa5]/,"**")
//将str中 所有 小字开头的人名 都 替换成 **,并将替换后的结果,手动保存回原变量中。

(2)高级替换: 根据搜到的不同敏感词替换成不同的新值

比如: 鄙视题: 将每个单词首字母改为大写!
//找到每个单词首字母: /\b[a-z]/g
//用replace将字符串中的所有首字母,替换为其对应的大写字母:

 str="you can you up";
  str=str.replace(//2个实参
    /\b[a-z]/g, //第一个实参是要查找字符的正则表达式
    //第二个实参是一个没有名字的函数
    //每找到一个敏感词,就自动调用一次
    //每次调用时都自动传入本次找到的敏感词给kword,比如: 本次找到“y”,那么kword=“y”
    function(kword){
      //1. 必须有一个形参
      //2.根据kword接到的值不同,返回不同新的替换值
      return y.toUpperCase() -> Y
      //return出的新值,会被自动替换到当前找到的敏感词位置。
    }
  )

衍生: 删除关键词: 其实就是替换为空字符串
str=str.replace(/正则/ig, “”);
作业: 鄙视: 删除字符串开头和结尾的空字符

3. 切割:将一个字符串按指定的分隔符,切割为多段子字符串

2种:

(1)分隔符是固定的:

var arr=str.split("分隔符")
将str按指定的分隔符切割为多段子字符串,保存在一个字符串数组中。
比如: var email="zhangdong@tedu.cn";
	//将email按中间的@切割
	var arr=email.split("@");
	//["zhangdong","tedu.cn"]
	//     0          1
	var uname=arr[0];
	var domain=arr[1];

(2)分隔符不确定,但有规律:

var arr=str.split(/正则/i)
比如: //再按</li>空字符<li>切割
  var arr=html.split(/<\/li>\s*<li>/i);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值