正则表达式RegExp
第三阶段笔记
张东
18301092802
正课:
1. RegExp对象
2. Function
一. RegExp对象
- 什么是:专门在js中保存一条正则表达式的对象。
- 为什么: js本来不认识正则表达式语法的。需要专门的对象来讲正则表达式语法翻译为js认识的方式。
- 何时:今后只要在js中使用正则表达式,都必须用RegExp对象
1.1、创建正则表达是对象
(1). 创建正则表达式对象
常用的创建方式:
a. 标准:
1). var 变量=new RegExp("正则表达式", "ig");
新建正则表达式对象
2). 其中:
i. i: ignore忽略,因为正则表达式默认是区分大小写的。如果我们希望在匹配时,忽略大小写,都要加上i。
ii. g: global 全部,因为正则表达式很懒,默认只匹配第一个符合要求的敏感词。如果希望查找所有敏感词时,都要加g。
b. 简写:
(1). var 变量=/正则表达式/ig;
(2). 使用正则表达式对象:
a. 验证字符串格式:只记reg.test()
1). var 验证结果=正则表达式对象.test(要验证的字符串)
2). 意为:用正则表达式去验证一个字符串的格式是否符合要求。
3). 何时:今后网页中所有格式验证都是由test函数实现的。
4). 坑: test默认情况下只要能够找到字符串中部分内容与正则表达式匹配,就返回true。而不要求必须从头到尾完整匹配!
5). 解决:要求必须从头到尾完整匹配:
今后只要验证字符串格式,都要在正则中同时前加^后加$,表示从头到尾的意思。
6).
示例:验证手机号格式是否正确:
1_test.html
|
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> //1. 请用户输入一个手机号 var phone=prompt("请输入手机号"); //2. 定义验证手机号格式的正则表达式 // 从头 到尾 var reg=/^1[3-9]\d{9}$/; //3. 用正则表达式去验证用户输入的手机号 var result=reg.test(phone); //4. 如果验证通过 if(result==true){ //5. 提示手机号格式正确 console.log("手机号格式正确") }else{//6. 否则 //7. 提示手机号格式不正确 console.error("手机号格式不正确") } </script> </body> </html>
|
b. 查找所有敏感词的内容和位置:只记: reg.exec()
1). var 数组=正则表达式对象.exec(包含敏感词的字符串);
2).意为:用正则表达式去字符串中查找符合要求的敏感词
3). 返回值:
i. 如果找到敏感词,就返回一个数组,其中包含一个敏感词的内容和出现的下标位置.
arr=[
0: "本次找到的敏感词",
index: 这个敏感词的下标位置
]
ii. 如果没找到敏感词,就返回null。
4). 固定套路:
var reg=/正则/g;
do{
var arr=reg.exec(包含敏感词的字符串);
if(arr!=null){
获取arr中的敏感词内容和位置
}
}while(arr!=null);
5).
示例:查找一个字符串中所有以小字开头的人名
2_exec.html
|
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> var str="老师:请用小红 我的 朋友造句。小亮:小红是我的朋友。小涛:朋友!小红是我的!"; //想找出所有以小字开头的人名 //定义正则表达式: // 一位汉字 var reg=/小[\u4e00-\u9fa5]/g; //用正则去字符串str中查找敏感词 //反复执行以下代码: //for while do while do{ var arr=reg.exec(str); // console.log(`在位置${arr["index"]}发现敏感词${arr["0"]}`); if(arr!=null){ console.log(`在位置${arr.index}发现敏感词${arr[0]}`); } }while(arr!=null); </script> </body> </html> 运行结果: 在位置5发现敏感词小红 在位置16发现敏感词小亮 在位置19发现敏感词小红 在位置27发现敏感词小涛 在位置33发现敏感词小红 |

浙公网安备 33010602011771号