正则表达式(二)


量词符与括号字符

1、量词符:用来设定某个模式出现的次数
在这里插入图片描述补充:{m,n}:匹配{}前面的字符次数m~n之间

var reg = /^a*$/;        // * 相当于>=0,可以出现0次或很多次
var reg = /^a+$/;        // + 相当于>=1,可以出现1次或很多次
var reg = /^a?$/;        // ? 相当于1||0,可以出现0次或1次
var reg = /^a{3}$/;      // {3}就是重复a字符3次
var reg = /^a{3,}$/;    // {3,}就是重复a字符 大于等于3次
var reg = /^a{3,16}$/;  // {3,16}就是重复a字符 大于等于3次 小于等于16次

在这里插入图片描述
在这里插入图片描述
4、贪婪与懒惰匹配 :贪婪表示匹配尽可能多的字符,而惰性表示匹配尽可能少的字符。
懒惰匹配:正则匹配默认是贪婪匹配,通过 “?”符号实现惰性匹配
5、反向引用:获取存放在缓存区内的子表达式的捕获内容
6、零宽断言:用于查找子表达式匹配的内容之前或之后是否含有特定字符集。
方式:正向预查和反向预查
正向预查
在这里插入图片描述7、正则表达式优先级:正则表达式各种符号的优先级,由高到低排列
在这里插入图片描述

String类中的方法

1、match()方法:根据正则匹配出所有符合要求的内容匹配成功后将其保存到数组中,匹配失败则返回false
2、search()方法:可以返回指定模式的子串在字符串首次出现的位置
3、split()方法:用于根据指定的分隔符将一个字符串分割成字符串数组,其分割后的字符串数组中不包括分隔符
4、replace()方法:用于替换字符串,用来操作的参数可以是一个字符串或正则表达式
案例:查找并替换敏感词

<div>过滤前内容:<br>
  <textarea id="pre" rows="10" cols="40"></textarea>
  <input id="btn" type="button" value="过滤">
</div>
<div>过滤后内容:<br>
  <textarea id="res" rows="10" cols="40"></textarea>
</div>
<script>
  document.getElementById('btn').onclick = function() {
    // 定义查找并需要替换的内容规则,[\u4e00-\u9fa5]表示匹配任意中文字符
    var reg = /(bad)|[\u4e00-\u9fa5]/gi;
    var str = document.getElementById('pre').value;
    var newstr = str.replace(reg, '*');
    document.getElementById('res').innerHTML = newstr;
  };
</script>

效果图
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值