正则表达式
正则表达式
手机号码
/^1[34578]\d{9}$/g
- 把模式写入一对正斜杠里面
- 用小箭头规定必须以某字符打头^
- 用中括号限制一个字符可以匹配哪些字符,只可以匹配其中一个字符
- \d 表示所有的数字
- {9}大括号里面表示前一个匹配规则可以重复的次数
- $表示以前面一个匹配规则结束
- /g 表示全局模式,表示查找字符串的全部内容,而不是找到第一个就完事了
QQ号码
/^ [1-9] [0-9] {4,9} $/g
- 用横杠来表示可选数字范围
- 大括号里面可以设置前一个匹配规则可以重复次数的范围
十六进制颜色
/#?([0-9a-fA-F]{6} | [0-9a-fA-F]{3})$/g
- | 表示或者
- ?表示前一个匹配规则可有可无
- ()可以表示一个计算单元
邮箱规格
/^([A-Za-z0-9_\ - \ . ] +) @ ([A-Za-z0-9\ - \ . ]+) \ . ([A-Za-z] {2,6})$/g
- \ 用于转义,如果使用-等本身就是在正则中用到的符号,需要用它的正体的时候就要转义
- . 在正则里面可以匹配除了换行符以外的所有字符
- +表示至少一个字符到无限个字符的范围
url
/ ^((https? | ftp | file) : / / )? ([\da-z \ . \ - ]+) \ . ([a-z\ .]{2,6}) ([/\w\ .\ -]* )* /?$/g
- \w 匹配任何文字字符,包括文字数字和下横线
- *表示0到无穷大
html标签
/ ^<([a-z]+) ( [ ^ >]+)* (>(.*)</\1> | \s+/>)$ /gm
- /m表示匹配多行
- [^ ]中括号内^加上一个字符,匹配除了该字符以外的字符
- \加上数字表示引用前面括号包括起来的组
- \s 表示空格
- ?: 出现在括号的开头表示不需要捕获该组,但是不影响组里面的组
ip地址
/^(([01]?[0-9] [0-9]? | 2[0-4] [0-9] | 25[0-5])\ . ){3}([01]?[0-9] [0-9]? | 2[0-4] [0-9] | 25[0-5])/gm
- 匹配数字范围的技巧: 0-255,可以表示为0-199然后200-249 , 250-255
日期
/ ^ [0-9]{4} - (0[1-9] | 1[1-2])-(0[1-9] | [12] [0-9] | 3[01])/gm
身份证
/ ^ [1-9] [0-9] {5} (18 | 19 | ([23] [0-9])) [0-9]{2} (0[1-9] | 1[0-2]) (0[1-9] | [12] [0-9] | 3[01] ) [0-9]{3}[0-9Xx]$/gm
其他
- 匹配所有非空格的字符