一、常用的正则表达式:
1、手机号码:/^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])d{8}$/
2、国内电话号码:/d{3}-d{8}|d{4}-d{7}/
3、身份证号:/(^d{15}$)|(^d{18}$)|(^d{17}(d|X|x)$)/
或者 /^[1-9]d{5}(18|19|([23]d))d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)d{3}[0-9Xx]$/
4、用户名:/^[a-zA-Z0-9_]{4,16}$/ (4-16位,由数字、子母下划线组成)
5、电子邮箱:/^([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|_|.]?)*[a-zA-Z0-9]+.[a-zA-Z]{2,3}$/
6、日期:简单判定:/^d{4}(-)d{1,2}1d{1,2}$/
7、QQ号:/^[1-9][0-9]{4,10}$/ (5-11位)
8、微信号: /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/(6至20位,以字母开头,由字母,数字,减号,下划线组成)
9、密码强度:/^.*(?=.{6,})(?=.*d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/(最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符)
10、正整数:/^d+$/
11、负整数:/^-d+$/
12、整数:/^-?d+$/
13、正数:/^d*.?d+$/
14、负数:/^-d*.?d+$/
15、数字:/^-?d*.?d+$/
16、URL:/^((https?|ftp|file)://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$/
17、ipv4地址:/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
18、十六进制颜色:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
19、车牌号:/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/
20、包含中文:/[u4E00-u9FA5]/
二、正则表达式之断言
1、断言,也叫零宽度断言、环视,主要介绍以下表格中列出的四种:
![d4fae098e155470191912309ca31fdbc.png](https://i-blog.csdnimg.cn/blog_migrate/09bf5b5a0e6c549012db2b3c8bac2401.jpeg)
2、首先作表达式结构解释, 以(?=exp)零宽度正先行断言 为例: "先行"表示待校验的位置在前,即校验的位置在exp匹配的内容之前:
(?=d{3})表示校验的位置后面是三个数字;
(?=d+) 表示校验的位置后接着的是数字;
(?=^.{5}$)表示校验的位置后字符串长度为5,因为加了字符串开头和结尾的元符号,所以这个表达式作用其实就是匹配长度为5的字符串。
由上面例子可以看出,断言的作用就是指定一个位置,该位置的前后内容需要满足exp规则。
3、(?!exp)表示校验位置之后的内容不匹配exp规则
(?!.*d{3}.*)表示校验位置之后的内容中不包含三个连续的数字。这个表达式的作用其实就是筛选出不包含三个连续数字的字符串。
4、(?<=exp)表示校验位置之前的内容匹配exp规则
(?<=d{3})表示校验位置前有三个连续的数字。这个表达式作用是匹配三个连续数字后面的内容。
5、(?<!exp)表示校验位置之前的内容不匹配exp规则
(?<!d{2})表示校验位置前不是两个数字。这个表达式作用就是匹配字符串部分内容,这部分内容前不是两个连续的数字。
如果有帮助到你,就点个赞叭~蟹蟹啦~
欢迎关注我【马技术猿】,全网同名哦