RegExp对象同样有自己操作的API,比如我们常用的test,exec。
RegExp对象 API:
- 验证: var bool=reg.test(str)
用正则表达式reg检查一个字符串str的格式是否符合要求。- 返回值: true/false;
- 问题: 正则表达式,默认只要找到符合规则的内容,就返回true,不要求从头到尾完整匹配——所以,也有人用reg.test()做查找关键词;
- 解决: 今后凡是验证必须前加^后加$,表示从头到尾完整匹配;
var input=prompt("请输入密码");
var reg=/^\d{6}$/;
if(reg.test(input)){
document.write(`<h1 style="color:green">验证通过!</h1>`)
}else{
document.write(`<h1 style="color:red">密码格式不正确!</h1>`)
}
- 查找敏感词:** reg.exec(str) **
- 什么是: 查找str中每个符合reg要求的敏感词的内容和位置;
- 何时: 只要既查找每个关键词的内容,又查找每个关键词的位置
- 如何:
var arr=reg.exec(str); - 执行过程:
1、每次只能查找一个敏感词;
2、返回: arr: [ 0: "敏感词", index: 位置i ] ——同match不加g的情况;
3、反复调用reg.exec可自动向后找!
4、找不到,返回null;
var str="明明喜欢我,却不告诉我。别理我,我想静静。静静是谁?你先告诉我,明明是谁?";
var reg=/明明|静静/g;
do {//先尝试找一次
var arr=reg.exec(str);
if(arr!=null)//如果找到,才输出
document.write(`在位置 ${arr.index}, 发现敏感词:${arr[0]}<br>`);
} while (arr!=null);//如果找到,才可以继续