js正则:(javascript正则)
正则:正确的规则
定义:正则表达式是由一系列普通字符和特殊字符组成的能明确描述文本字符的文字匹配模式
普通字符:abcdefgABCDEFG 1234567890等。特殊字符:$^.*?+/@等
作用:验证表单,增强表单数据的正确性,增强用户体验度,减轻php工作压力(不用提交后台处理数据) 声明方式:var 变量名 = /^$/;
组成:主要有元字符组成
①模式匹配符(匹配用户输入字符串的符号):
\ :转义字符(能把原来字符的意思转化成新的意思)
^ :正则表达式开始符号
$ :正则表达式结束符号
*:匹配前面的字符出现0次或者n次(用户输入空字符或者多个字符)
+:匹配前面的字符出现1次或者n次(用户输入一次或多次字符)
?:匹配前面的字符出现0次或者1次(用户输入空字符或者一个字符)
.:匹配除了换行符以外的所有单个字符(用户除了换行符以外,其他的字符)
②区间匹配符
|:判断用户输入的字符(不是前面的的就是后面的)
注意:使用|的时候 用()包起来(包的是或的所有的条件)
{n}:匹配前面的n个字符(就是你n=5那么你就匹配5个字符)
{n,} 至少匹配n个字符(就是你n=5那么你最少匹配5个字符)
{n,m} 至少匹配n个字符,最多匹配m个字符(表示区间就是你n=5 m=9那么你可以匹配5到9之间的字符)
[xyz]:匹配中括号里的任意一个字符(就是[a-z0-9]那就匹配小写字母和数字)
[^xyz]:匹配除了中括号里的任意一个字符(就是[^a-z]那就匹配除了小写字母其他以外的)
③描述用户输入符(就是用来描述你用户可以输入的东西)
\d :匹配任意一个0--9之间的数字
\w :匹配任意一个数字或字母或下划线 等价于[A-Za-z0-9_]
\s :匹配空格的
④模式修正符:
i:忽律大小写 (在定界符后面写//i)
m:匹配多行
g:全局匹配
⑤定界符:
//匹配正则表达式的函数:test(你要匹配的内容); exec()也可以匹配
{n} + | []在什么时候用:
{n}:当你知道你要匹配多少字符的时候用、固定长度(身份证号、手机号、证件号,字数限定)
+:当你不知道你要匹配多少个字符的时候用、不固定长度(各种邮箱,或者没限定用户输入的字符串长度、网址)
|: 当你不确定有几种正确的格式时候用(身份证号、邮箱、座机号有疑义的字符)
[]:当你给你的字符串限定范围了,说明用户只能用你限定范围里的(手机号第二位,[34578]、不能以...开头,汉字)
注意:js汉字的正则表达式:
var reg = /^[\u4e00-\u9fa5]{1,20}$/
/[\x{4e00}-\x{9fa5}]+/u
js忽律大小写的正则表达式
var reg = /^[a-z]\w{5,9}$/i
用户名必须是两到三位的中文 或者 是 6-30位的字母和数字
var reg = /^([\u4e00-\u9fa5]{2,3}|[a-z0-9]{6,30})$/i;
除换行符以外的任意3-6个字符
var reg = /^.{3,6}$/;
//验证身份证号: 18位数字 最后一位可以是X
var reg = /^\d{17}(x|\d)$/i;
//验证邮箱:以.com, .gov、.org,.cn结尾的邮箱
var reg = /^\w+@\w+\.(com|gov|org|cn)$/;
//验证手机号:第一位必须是1,紧接着是2578任意的数字
var reg = /^1[2578]\d{9}$/;