过滤敏感词及正则表达式

过滤敏感词及正则表达式

使用正则表达式筛选出要过滤的词,使用replace替换掉。

let textarea = document.querySelector("textarea");
        let btn = document.querySelector("button");
        let p = document.querySelector("p");
        let reg = /傻子|坏蛋/g; //全局过滤词
        btn.addEventListener('click', function() {

            var text = textarea.value.replace(reg, '*')  //把敏感词替换成*
            p.innerText = text;
        })

正则表达式

一、创建与检测
1.利用RegExp对象创建。2.利用字面量创建。3.test方法检测字符串是否符合正则表达式要求规范。

var regexp=new RegExp(/123/);//1.利用RegExp对象创建 不加引号
var re=/456/;//2.利用字面量创建
console.log(re.test(123456));//true 3.

二、字符类
[ ]表示有一系列字符可供选择,只要匹配其中一个就可以了。

量词说明
*重复0次或更多次
+重复一次或更多次
?重复0次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次
边界符说明
^表示匹配行首的文本(以谁开始)
$表示匹配行尾的文本(以谁结束)
/^abc$/精确匹配,必须是abc
var re=/^a+$/;//一次以上
console.log(re.test('aaaa'));
var re=/^a?$/;//0或1次
console.log(re.test('a'));
console.log(re.test(''));
var re=/^a{3,}$/;//大于等于3
console.log(re.test('aaaaaa'));
var re=/^a{3,5}$/;//3到5

三、括号总结

  • 大括号 量词符 里面表示重复次数
  • 中括号 字符集合 匹配方括号中的任意字符
  • 小括号 表示优先级

四、预定义类(简写方式)

预定类说明
\d匹配0-9之间的任一数字,相对于[0-9]
\D匹配所有0-9以外的字符,相对于[^0-9]
\w匹配任意的字母,数字和下划线,相当于[A-Za-z0-9]
\W除所有字母,数字和下划线以外的字符,相当于[^A-Za-z0-9]
\s匹配空格(包括换行符,制表符,空格符),相当于[\t\r\n\v\f]
\S匹配非空格字符
var re=/^\d(3,4)-\d(7,8)$/;//010-12345678 0530-1234567

正则里面的或者 符号 |

表单验证

var uname=document.querySelector('.uname');
var span=document.querySelector('span');
var re=/^[0-9]{6,11}$/;//6-11次
uname.onblur=function(){
       if(re.test(this.value)){
           span.innerHTML="输入的格式正确";
        }else{
            span.innerHTML="输入的格式不正确";}
        }

正则替换

stringobject.replace(regexp/substr,repalcement)
  • 第一个参数:被替换的字符串或者正则表达式
  • 第二个参数:被替换的字符串
  • 返回值是一个替换完毕的新的字符串
div.innerHTML= text.value.replace(/傻子/,'***');//替换
div.innerHTML= text.value.replace(/傻子/g,'***');//替换

g:全局匹配,i:忽略大小写 ,gi:全局匹配+忽略大小写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值