JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)


Posted in Javascript onFebruary 03, 2020

有时候正则表达式可以大大提高我们的开发效率呢

比如这段校验基本日期格式的javascript代码:

let d1 = "2017/12/10";
let r1 = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;
let r = d1.match(r1);
if(r == null){
  console.log("日期格式错误!");
}else{
  console.log("通过~");
}

1、校验密码强度

密码的强度必须包含大小写字母和数字的组合,不能使用特殊符号,长度在8-10之间:

^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

2、校验中文

字符串只能是中文:

^[\\u4e00-\\u9fa5]{0,}$

3、由数字,26个英文字母或下划线组成的字符串

^\\w+$

4、校验E-Mail 地址

字符串只能是中文:

[\\w!#$%&"*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&"*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?

5、校验身份证号码

15位:

^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$

18位:

^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}([0-9]|X)$

6、校验日期

“yyyy-mm-dd“ 格式的日期校验,已考虑平闰年:

^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$

7、校验金额

金额校验,精确到2位小数:

^[0-9]+(.[0-9]{2})?$

8、校验手机号

下面是国内 13、15、18开头的手机号正则表达式:

^(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}$

9、判断IE的版本

^.*MSIE [5-8](?:\\.[0-9]+)?(?!.*Trident\\/[5-9]\\.0).*$

10、校验IP-v4地址

\\b(?:(?: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]?)\\b

11、校验IP-v6地址

(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))

12、检查URL的前缀

if (!s.match(/^[a-zA-Z]+:\\/\\//)){s = "http://" + s;}

13、提取URL链接

^(f|ht){1}(tp|tps):\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w- ./?%&=]*)?

14、文件路径及扩展名校验

^(f|ht){1}(tp|tps):\\/\\/([\\w-]+\\.)+[\\w-]+(\\/[\\w- ./?%&=]*)?

15、提取Color Hex Codes

^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$

16、提取网页图片

\\< *[img][^\\\\>]*[src] *= *[\\"\\"]{0,1}([^\\"\\"\\ >]*)

17、提取页面超链接

(<a\\s*(?!.*\\brel=)[^>]*)(href="https?:\\/\\/)((?!(?:(?:www\\.)?" rel="external nofollow" .implode("|(?:www\\.)?", $follow_list)."))[^"]+)"((?!.*\\brel=)[^>]*)(?:[^>]*)>

18、查找CSS属性

^\\s*[a-zA-Z\\-]+\\s*[:]{1}\\s[a-zA-Z0-9\\s.#]+[;]{1}

19、抽取注释

<!--(.*?)-->

20、匹配HTML标签

<\\/?\\w+((\\s+\\w+(\\s*=\\s*(?:".*?"|".*?"|[\\^"">\\s]+))?)+\\s*|\\s*)\\/?>

一、校验数字的表达式

1、 数字

^[0-9]*$

2、 n位的数字

^\d{n}$

3、 至少n位的数字

^\d{n,}$

4、 m-n位的数字

^\d{m,n}$

5、 零和非零开头的数字

^(0|[1-9][0-9]*)$

6、 非零开头的最多带两位小数的数字

^([1-9][0-9]*)+(.[0-9]{1,2})?$

7、 带1-2位小数的正数或负数

^(\-)?\d+(\.\d{1,2})?$

8、 正数、负数、和小数

^(\-|\+)?\d+(\.\d+)?$

9、 有两位小数的正实数

^[0-9]+(.[0-9]{2})?$

10、 有1~3位小数的正实数

^[0-9]+(.[0-9]{1,3})?$

11、 非零的正整数

^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$

12、 非零的负整数

^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$

13、 非负整数

^\d+$ 或 ^[1-9]\d*|0$

14、 非正整数

^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$

15、 非负浮点数

^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$

16、 非正浮点数

^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$

17、 正浮点数

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$

18、 负浮点数

^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$

19、 浮点数

^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

二、校验字符的表达式

1、 汉字

^[\u4e00-\u9fa5]{0,}$

2、 英文和数字

^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$

3、 长度为3-20的所有字符

^.{3,20}$

4、 由26个英文字母组成的字符串

^[A-Za-z]+$

5、 由26个大写英文字母组成的字符串

^[A-Z]+$

6、 由26个小写英文字母组成的字符串

^[a-z]+$

7、 由数字和26个英文字母组成的字符串

^[A-Za-z0-9]+$

8、 由数字、26个英文字母或者下划线组成的字符串

^\w+$ 或 ^\w{3,20}$

9、 中文、英文、数字包括下划线

^[\u4E00-\u9FA5A-Za-z0-9_]+$

10、 中文、英文、数字但不包括下划线等符号

^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$

11、 可以输入含有^%&",;=?$\"等字符

[^%&",;=?$\x22]+

12、 禁止输入含有~的字符

[^~\x22]+

三、特殊需求表达式

1、 Email地址

^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$

2、 域名

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

3、 InternetURL

[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$

4、 手机号码

^(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}$

5、 电话号码("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX)

^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$

6、 国内电话号码(0511-4405222、021-87888822)

\d{3}-\d{8}|\d{4}-\d{7}

7、 身份证号(15位、18位数字)

^\d{15}|\d{18}$

8、 短身份证号码(数字、字母x结尾)

^([0-9]){7,18}(x|X)?$ 或 ^\d{8,18}|[0-9x]{8,18}|[0-9X]{8,18}?$

9、 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线)

^[a-zA-Z][a-zA-Z0-9_]{4,15}$

10、 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线)

^[a-zA-Z]\w{5,17}$

11、 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间)

^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

12、 日期格式

^\d{4}-\d{1,2}-\d{1,2}

13、 一年的12个月(01~09和1~12)

^(0?[1-9]|1[0-2])$

14、 一个月的31天(01~09和1~31)

^((0?[1-9])|((1|2)[0-9])|30|31)$

15、 钱的输入格式

1.有四种钱的表示形式我们可以接受:"10000.00" 和 "10,000.00", 和没有 "分" 的 "10000" 和 "10,000"

^[1-9][0-9]*$

2.这表示任意一个不以0开头的数字,但是,这也意味着一个字符"0"不通过,所以我们采用下面的形式

^(0|[1-9][0-9]*)$

3.一个0或者一个不以0开头的数字.我们还可以允许开头有一个负号

^(0|-?[1-9][0-9]*)$

4.这表示一个0或者一个可能为负的开头不为0的数字.让用户以0开头好了.把负号的也去掉,因为钱总不能是负的吧.下面我们要加的是说明可能的小数部分

^[0-9]+(.[0-9]+)?$

5.必须说明的是,小数点后面至少应该有1位数,所以"10."是不通过的,但是 "10" 和 "10.2" 是通过的

^[0-9]+(.[0-9]{2})?$

6.这样我们规定小数点后面必须有两位,如果你认为太苛刻了,可以这样

^[0-9]+(.[0-9]{1,2})?$

7.这样就允许用户只写一位小数.下面我们该考虑数字中的逗号了,我们可以这样

^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$

8.1到3个数字,后面跟着任意个 逗号+3个数字,逗号成为可选,而不是必须

^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$

16、 xml文件

^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$

17、 中文字符的正则表达式

[\u4e00-\u9fa5]

18、 双字节字符

[^\x00-\xff] (包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))

19、 空白行的正则表达式

\n\s*\r (可以用来删除空白行)

20、 HTML标记的正则表达式

<(\S*?)[^>]*>.*?</\1>|<.*? /> (网上流传的版本太糟糕,上面这个也仅仅能部分,对于复杂的嵌套标记依旧无能为力)

21、 首尾空白字符的正则表达式

^\s*|\s*$或(^\s*)|(\s*$) (可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式)

22、 腾讯QQ号

[1-9][0-9]{4,} (腾讯QQ号从10000开始)

更多关于JS常用正则表达式的文章大家可以看看下面的相关链接

Javascript 相关文章推荐
Add a Formatted Table to a Word Document
Jun 15 Javascript
利用js实现禁止复制文本信息
Jun 03 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
Nov 02 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
Oct 10 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
Dec 28 Javascript
Vue CLI3 如何支持less的方法示例
Aug 29 Javascript
js的各种数据类型判断的介绍
Jan 19 Javascript
js实现ATM机存取款功能
Oct 27 Javascript
浅谈发布订阅模式与观察者模式
Apr 09 Javascript
js继承的这6种方式!(上)
Apr 23 Javascript
浅谈vue项目用到的mock数据接口的两种方式
Oct 09 Javascript
详解vue中v-model和v-bind绑定数据的异同
Aug 10 Javascript
微信小程序实现上传多个文件 超过10个
Mar 30 #Javascript
微信小程序实现同时上传多张图片
Feb 03 #Javascript
解决小程序无法触发SESSION问题
Feb 03 #Javascript
vue组件创建的三种方式小结
Feb 03 #Javascript
Vuex模块化应用实践示例
Feb 03 #Javascript
微信小程序8种数据通信的方式小结
Feb 03 #Javascript
使用js实现单链解决前端队列问题的方法
Feb 03 #Javascript
You might like
php四种基础算法代码实例
2013/10/29 PHP
ThinkPHP实现多数据库连接的解决方法
2014/07/01 PHP
详解PHP中的外观模式facade pattern
2018/02/05 PHP
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
JS实现状态栏跑马灯文字效果代码
2015/10/24 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
JavaScript 深层克隆对象详解及实例
2016/11/03 Javascript
JavaScript实现左侧菜单效果
2017/12/14 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
vue用elementui写form表单时,在label里添加空格操作
2020/08/13 Javascript
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
在Python中使用mechanize模块模拟浏览器功能
2015/05/05 Python
Python中datetime常用时间处理方法
2015/06/15 Python
举例讲解Python的lambda语句声明匿名函数的用法
2016/07/01 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
2017/11/01 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
scrapy在python爬虫中搭建出错的解决方法
2020/11/22 Python
css3学习之2D转换功能详解
2016/12/23 HTML / CSS
英国最大的高品质珠宝和手表专家:Goldsmiths
2017/03/11 全球购物
车贷收入证明范本
2014/01/09 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
网站美工岗位职责
2014/04/02 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
学年个人总结范文
2015/03/05 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
导游词之山海关
2019/12/10 职场文书
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android