回顾(JavaScript)Js正则表达式
回顾(JavaScript)Js正则表达式
目录
一.Js中正则的特殊符号(元字符)
二.定义正则
三.正则的常用方法 :
四: 常用的正则表达式
一.Js中正则的特殊符号(元字符)
-
/…/: 代表一个模式的开始和结束
-
^: 匹配字符串的开始,例如 /^A/ 并不会匹配 “an A” 中的 ‘A’,但是会匹配 “An E” 中的 ‘A’。
-
$: 匹配字符串的结束,例如 /t$/ 并不会匹配 “eater” 中的 ‘t’,但是会匹配 “eat” 中的 ‘t’。
-
\n: 匹配一个换行符 (U+000A)。
-
\r: 匹配一个回车符 (U+000D)。
-
\s: 任何空白字符
-
\S: 任何非空白字符
-
\d: 匹配一个数字字符,等价于[0-9],/\d/ 或者 /[0-9]/ 匹配"B2 is the suite number."中的’2’
-
\D: 除了数字之外的任何字符,等价于0-9,/\D/ 或者 /0-9/ 匹配"B2 is the suite number."中的’B’
-
\w: 匹配一个数字、下划线或字母字符,等价于[A-Za-z0-9_]
-
\W: 任何非单字字符,等价于 a-zA-z0-9
-
.: (小数点)默认匹配除换行符之外的任何单个字符。例如,/.n/ 将会匹配 “nay, an apple is on the tree” 中的 ‘an’ 和 ‘on’,但是不会匹配 ‘nay’。
-
{n}: 匹配前一项n次
-
{n,}: 匹配前一项n次,或者多次
-
{n,m}: 匹配前一项至少n次,但是不能超过m次
-
n*: 匹配前一项0次或多次,等价于{0,},例如/bo*/ 会匹配 “A ghost boooooed” 中的 ‘booooo’ 和 “A bird warbled” 中的 ‘b’,但是在 “A goat grunted” 中不会匹配任何内容。
-
n+: 匹配前一项1次或多次,等价于{1,},/a+/ 会匹配 “candy” 中的 ‘a’ 和 “caaaaaaandy” 中所有的 ‘a’,但是在 “cndy” 中不会匹配任何内容。
-
n?: 匹配前一项0次或1次,也就是说前一项是可选的,等价于{0,1},例如,/e?le?/ 匹配 “angel” 中的 ‘el’、“angle” 中的 ‘le’ 以及 "oslo’ 中的 ‘l’。
-
x|y: 匹配‘x’或者‘y’。例如 /green|red/匹配“green apple”中的‘green’和“red apple”中的‘red’
二.定义正则
1 var re = new RegExp(“a”); //RegExp对象。参数就是我们想要制定的规则。有一种情况必须用这种方式,下面会提到。
2 var re = /a/; // 简写方法 推荐使用 性能更好 不能为空 不然以为是注释 ,
三.正则的常用方法 :
1 test() :
在字符串中查找符合正则的内容,若查找到返回true,反之返回false.
用法:正则.test(字符串) 例子:判断是否是数字
var str = '12345678';var re = /\D/; // \D代表非数字if (re.test(str)) { // 返回true,代表在字符串中找到了非数字。console.log('不全是数字');} else {console.log('全是数字');}
2 match() :
在字符串中搜索复合规则的内容,搜索成功就返回内容,格式为数组,失败就返回null。
用法: 字符串.match(正则), 量词:+ 至少出现一次 匹配不确定的次数(匹配就是搜索查找的意思) 全局匹配:g——global(正则中默认,只要搜索到复合规则的内容就会结束搜索 )
例子:找出指定格式的所有数字,如下找到 123,54,33,879
var str = 'one 123 two 23 three 3';
var re = /\d+/g;
// 每次匹配至少一个数字 且全局匹配 如果不是全局匹配,当找到数字123,它就会停止了。
// 就只会弹出123.加上全局匹配,就会从开始到结束一直去搜索符合规则的。如果没有加号,匹配的结果就是'1', '2', '3', '2', '3', '3',并不是我们想要的,
// 有了加号,每次匹配的数字就是至少一个了。
console.log( str.match(re) ); // ['123', '23', '3']
例子:匹配读取: 读取字符串中的所有'o'
//1.创建正则表达式
var reg = /o/gi; // g: global 全部 i: ignore 忽略大小写
//2.创建目标字符串
var str = "Hello oo WOrld!";
//3.match函数返回一个数组
var arrstr = str.match(reg);
arrstr.forEach(s => {console.log(s); // 3个o 一个O
});
3 replace() :
用法: 字符串.replace(正则,新的字符串/回调函数)(在回调函数中,第一个参数指的是每次匹配成功的字符) | : 或的意思 。
例子:敏感词过滤,比如 我爱北京天安门,天安门上太阳升。------我爱*,上太阳升。即北京和天安门变成*号,
var str = "我爱北京天安门,天安门上太阳升。";
var re = /北京|天安门/g; // 找到北京 或者天安门 全局匹配
var str2 = str.replace(re, function (str) {console.log(str); //用来测试:函数的第一个参数代表每次搜索到的符合正则的字符,所以第一次str指的是北京 第二次str是天安门 第三次str是天安门var result = '';for (var i = 0; i < str.length; i++) {result += '*';}return result; //所以搜索到了几个字就返回几个*
});
console.log(str2) //我爱*****,***上太阳升
//整个过程就是,找到北京,替换成了两个*,找到天安门替换成了3个*,找到天安门替换成3个*。
四: 常用的正则表达式
-
用户名验证 /^[a-zA-Z_][a-zA-Z_0-9-]{5,9}$/
-
密码验证 /^[a-zA-Z0-9_\@#&*-]{6,12}$/
-
前后空格验证 /^\s+|\s+$/g
-
电子邮箱验证 /^[a-zA-Z0-9_.-]+@([a-zA-Z0-9-]+[.]{1})+[a-zA-Z]+$/
-
手机号验证 /(^1[3|4|5|6|7|8|9]\d{9}$)|(^09\d{8}$)/
-
身份证验证 /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
-
网址验证 /^(https?:|mailto:|tel:)/
- Excel转Html(一)
- 自定义注解实现RBAC权限校验,不要再说你不会了
- platform
- 什么是Platform SDK?
- 职场论
- Android出现没有资源包问题,Android打包出现的小问题汇总
- Revit二次开发从入门到精通学习之路, (含Revit二次开发教程下载)
- HTK嵌入式训练
- 音乐剧推荐
- 更加简便的使用VSS
- EXT2和3区别
- 网络流量监控介绍
- TCPIP和TCP,UDP
- 四川省13家企业荣获第十三届创新中国企业家论坛“创新型企业”奖
- Intellij IDEA
- 聚类分析及R编程实现
- CList 用法
- (Python)异常处理try...except、raise
- 学习LSSVM以及区别LSSVM和SVM看的几篇博文
- qt学习笔记(八)之深入QSqlQuery