验证中...
片段 1 片段 2
常见正则表达式总结
原始数据 复制代码
//--------------------------------常见正则表达式----------------------------//
匹配手机号:
/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[45678]|19[89]|16[6])[0-9]{8}$/
(手机号需要注意新添加号段:19[89])
匹配身份证号:
/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/
匹配2到6个中文字符
^[\u4e00-\u9fa5]{2,6}$
匹配6~10位由数字和26个英文字母混合而成的密码:
^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,10}$
解析:
^
匹配字符串的开始位置
(?![0-9]+$)
断言此位置之后,字符串结尾之前,所有的字符不能全部由数字组成
(?![a-zA-Z]+$)
断言此位置之后,字符串结尾之前,所有的字符不能全部由26个英文字母组成
[0-9A-Za-z]{6,10}
匹配整个字符串由6~10位由数字和26个英文字母混合而成
$
匹配字符串的结束位置
下面是一些常用的实例
1.匹配 “a”,"*","1" 三个字符中的任何一个
[a,\*,1]
2.匹配负整数
^-[1-9]\d*
3.验证密码,以字母开头,长度在6~18之间,只能包含字符、数字和下划线
^[a-zA-Z]\w{5,17}$
4.Email的验证
要求:(1)必须包含一个"@"
   (2)在"@"后面的字符串至少包含一个"."号
   (3)"@"前面和后面的字符串由一个或一个以上字母、数字、下划线或减号构成
^[a-zA-Z0-9_\-]{1,}@[a-zA-Z0-9_\-]{1,}\.[a-zA-Z0-9_\-.]{1,}$
5.验证InternetURL地址
^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
6.最多允许使用 40 个大写字母和小写字母
[a-zA-Z]{1,40}
7.只能输入零和非零开头的数字
^(0|[1-9][0-9]*)$
8.只能输入有两位小数的正实数
^[0-9]+(.[0-9]{2})?$
9.只能输入非零的正整数
^\+?[1-9][0-9]*$
10.只能输入由数字、26个英文字母或者下划线组成的字符串
^\w+$
^[\d|A-z|_]+$
11.匹配例如:yyyy-mm-dd或yyyy/mm/dd的日期格式
\d{4}([-/])\d{2}\1\d{2}
12. 匹配其中的数字字符串
"[\"3812662409\",\"3812633637\",\"3812627686\",\"3812651467\",\"3812628047\",\"3812650203\"]"
例如:3812662409,3812633637...
\d+
//---------------------------正则表达式知识点总结--------------------------//
正则表达式一般配合test()使用:
test() 方法用于检测一个字符串是否匹配某个模式.
如:(/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,12}$/.test(passward))
匹配6-12个包含数字字母的字符串满足返回true,不满足返回false;
RegExpObject.test(string) string 必需。要检测的字符串。
如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。
调用 RegExp 对象 r 的 test() 方法,并为它传递字符串 s,与这个表示式是等价的:(r.exec(s) != null)。
一、元字符
. 匹配除换行符之外的任意字符
\w 匹配字母数字下划线,等同于:[a-zA-Z0-9_]
\s 匹配任意空白符
\d 匹配数字,等同于[0-9]
\b 匹配单词边界
| 或匹配,如 /x|y/ 正则可匹配x或y两个字符
^ 匹配字符串的开始
$ 匹配字符串的结束
二、反义字符
[^x] 匹配除“x”之外的所有字符,其中“x”可以为任意字符
[^xyz] 同上,匹配除“x、y、z”之外的任意字符
\W 匹配除了字母、数字、下划线之外的所有字符,等同于:[^\w]
\S 匹配除空白符之外的任意字符,等同于:[^\s]
\B 匹配不是单词边界的字符,等同于:[^\b]
\D 匹配不是数字的所有字符,等同于:[^\d]
三、转义字符
\xnn 匹配十六进制数
\f 匹配换页符,等同于:\x0c
\n 匹配换行符,等同于:\x0a
\r 匹配回车符,等同于:\x0d
\t 匹配水平制表符,等同于:\x09
\v 匹配垂直制表符,等同于:\x0b
\unnnn 匹配Unicode字符,如:\u00A0
四、重复匹配
* 重复出现零次或多次
+ 重复出现一次或多次
? 重复出现零次或一次
{n} 重复出现n次
{n,} 至少重复出现n次
{m,n} 重复重现m到n次,其中,m<n
五、分组/捕获
(exp) 用小圆括号进行分组,如日期中年月日的分组:/(\d{5})-(\d{1,2})-(\d{1,2})/
每个分组将产生分组号,从第一个括号开始,可以使用\n的形式在正则中使用分组号,
如匹配成对出现的HTML标签,可以写成:/<(\w+)><\/\1>/
(?:exp) 匹配exp正则,但不产生分组号
exp1(?=exp2) 前瞻断言,匹配exp1,但后面必须是exp2如匹配名字叫xianlie,但不姓zhao的人:/zhao(?=xianlie)/
exp1(?!=exp2) 后瞻断言,匹配exp1,但后面不能是exp2如匹配姓zhao,但名字不叫xianlie的人:/zhao(?!xianlie)/
六、贪婪与惰性
*? 重复任意次,但尽可能少的重复
+? 重复一次或多次,但尽可能少的重复
?? 重复零次或一次,但尽可能少的重复
{m,n}? 重复m到n次,但尽可能少的重复
{n,}? 重复n次以上,但尽可能少的重复
{n}? 重复n次,但尽可能少的重复
七、修饰符
i ignoreCase的缩写,表示忽略字母的大小写
m multiline的缩写,更改^和$的含义,使它们分别在任意一行的行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配。
(在此模式下,$的精确含意是:匹配\n之前的位置以及字符串结束前的位置.)
g global的缩写,进行全局匹配,即对字符串进行全文匹配,直到字符串遍历结束
php判断中文字符与js判断中文字符不同的方法.png

评论列表( 2 )

1329024_hjm100
鸿基梦 2018-04-19 19:26

从html中提取纯文本:a.text = a.content.replace(/<[^>]*>|/g,"")

1329024_hjm100
鸿基梦 2018-04-18 10:47

正则替换:'04.21'.replace(/./, "月")+'日' ==>04月21日

你可以在登录后,发表评论

搜索帮助

12_float_left_people 12_float_left_close