过滤敏感词及正则表达式

过滤敏感词及正则表达式

使用正则表达式筛选出要过滤的词,使用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:全局匹配+忽略大小写

你可能感兴趣的:(过滤敏感词及正则表达式)