JS
RegExp对象
1).定义:专门在js程序中保存一条正则表达式的对象
2).何时:在js中需要用到正则表达式,就需要用RegExp
3).创建:2种方式
1.标准方式创建
var reg=new RegExp("正则表达式","ig");
其中保存一条正则表达式
i ignore
g global
2.简写方式创建
var reg=/正则表达式/ig;
例子:
var str=prompt("请输入内容");
var reg=new RegExp("[我wo卧][cao艹草槽]");
// var reg=/[我wo卧][cao艹草槽]/;
// search函数,查找字符串中是否包含reg中的词没如果找到就返回第一个敏感词所在的下标位置,如果没找到就返回-1
var res=str.search(reg);
if(res!==-1){
console.log("包含敏感词,禁止发送")
}else{
console.log("小明说:"+str);
}
4).RegExp对象中的两个函数
1).test()函数 用于验证字符串是否符合正则表达式
在写正则表达式时,想要完全匹配时,需要加“^”或“$”(正则的开始和结束标志)
var str1=prompt("请输入手机号");
// var reg1=/^1[3-9]\d{9}$/; //11位数字,首位1,第二位是3-9的任一数字,后面9个数字
// 注意:转义字符的使用,因js中语法中也有\,所以正则表达式中的\需要用转义字符\\
var reg1=new RegExp("^1[3-9]\\d{9}$")
// test方法,用于测试字符串中输入的信息格式是否正确,其中test的匹配是只要找到就返回true,而不是完全匹配
var res1=reg1.test(str1);
if(res1===true){
console.log("格式正确")
}else{
console.log("格式错误");
}
注意事项:1.test方法在使用过程中,它是自己匹配(也就是说,在字符串中只要有部分匹配的就返回 true),不是完全匹配。
2.转义字符的使用,在使用new创建正则表达式时需要注意转义字符,因js中语法中也有, 所以正则表达式中的\需要用转义字符\
2).exec()函数 用于查找字符串中的敏感词匹配,返回值是数组,数组中有两个属性:[0:敏感词,“index":下标]
// 查找字符串中所有包含"小X"的字符串
var str="老师说:用小红 我的 朋友造句。小南说:小红是我的朋友。小亮说:朋友!小红是我的。";
var reg=/小[\u4e00-\u9fa5]/g;
var num=0;
do{
var res=reg.exec(str);
num++;
if(res!==null){
console.log(num,res);
console.log(`在${res["index"]}处找到敏感词${res["0"]}`);
}
}while(res!==null)