开发工具与关键技术:Adobe Dreamweaver JavaScript
作者:Eric
撰写时间:2020年4月25日
JavaScript正则表达式总结
1、string对象:
(1)search:查找(括号里为要查找的内容)
(2)substring:截取字符串(起点,终点)获取的值不包括终点那个字符
如果省略第二个参数,终止位就默认为字符串的长度。
(3)Charat:获取某个字符(括号里为数组的索引)返回字符串中的某一位
(4)Split:分隔字符串,将字符串分隔成数组
(5)Match:会将匹配到的内容封装到一个数组中返回,但是只会寻找第
一个符合要求的内容,如果需要多个内容,那么要加一个全局匹配g
(6)replace:将字符串中指定的内容替换为新的内容,两个参数
参数一:被替换的内容 参数二:新的内容
(7)endsWith():用于检测字符串是否使用指定字符串结尾
2:正则表达式:
(1)通过new RegExp()创建
(2)test()方法可以检测是否符合正则表达式
(3)如果不区分大小写,则要在表达式中加一个i
(4)”|“在正则表达式中,代表或者的意思,/a|b/表示a或者b
(5)/[]/:/[abc]/ 等价于 /a|b|c/
(6)/[a-z]/:表示匹配所有的小写字母
(7)/[A-Z]/:表示匹配所有的大写字母
(8)/[A-z]/或者/[a-z]/i:表示匹配所有的字母,不区分大小写
(9)【^abc】:意思是除了abc这三个字符都返回true
(10)可以为正则表达式设置多个匹配模式,且顺序无所谓
(11)^表示开始 $表示结束
(12)^在方括号中意思是除了什么什么的意思,而在外面是表示匹配字符的开始
3、量词
(1){n}:连续出现n次 /a{3}/ == /aaa/
(2){m,n}:出现m次到n次 /ab{2,4}c/
(3){n,}至少出现n次或n以上 /ab{2,}c/
(4)+ 至少出现一次,也可以出现无数次 /ab+c/
(5)* 出现零次或零次以上 /ab*c/
(6)?出现一次或者零次 /ab?c/
(7)(ab){3}表示ab作为一个整体出现3次
**注意:这些符号只对符号前一个字符有效,例如**
reg=/ab{2,}c/:表示b出现2次或2次以上
4、元字符
(1)“.”英文状态下的。在正则中表示匹配除了换行以外的任意字符,
如果非要查找。这个字符,那么可以通过\进行转义:\.
(2)\w:匹配任意字母、数字、“_下划线”==[A-z0-9_]
(3)\W:匹配除了字母、数字、下划线之外==[^A-z0-9_]
(4)\d:匹配数字 == [0-9]
(5)\D:匹配非数字
(6)\s:匹配空格
(7)\S:匹配非空格
(8)\b:匹配单词边界
(9)\B:匹配非单词边界
验证位数:maxlength:位数,规定只能输入多少位
正则经验:在写完的正则开头加一个^和在末尾加一个$
5、懒惰限字符:也就是匹配尽可能少的字符
*? 重复任意次,但尽可能少重复
+? 重复1次或更多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{n,m}? 重复n到m次,但尽可能少重复
{n,}? 重复n次以上,但尽可能少重复
最后给大家几个我常用的正则表达式
(1)[\u4e00-\u9fa5]:验证中文
(2)图片文件的正则表达式过滤
/^(?:image\/bmp|image\/gif|image\/jpg|image\/jpeg|image\/png)$/i;
(3)邮箱的正则:/^([a-zA-Z]|[0-9])(\w|\-)+@@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
(4)手机号正则:^0?(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[89])[0-9]{8}$