关闭

常用JavaScript正则表达式整理

时间: 2018-09-26阅读: 1661标签: 正则

在表单验证中,正则表达式书写起来特别繁琐,本文整理了15个常用的JavaScript正则表达式,其中包括用户名、密码强度、整数、数字、电子邮件地址(Email)、手机号码、身份证号、URL地址、 IPv4地址、 十六进制颜色、 日期、 QQ号码、 微信号、车牌号、中文正则、文件路径及扩展名、提取网页中颜色代码、提取网页中图片、提取网页超联机、提取css、抽取注释


1.用户名

//用户名正则,4到16位(字母,数字,下划线,减号)
var userName = /^[a-zA-Z0-9_-]{4,16}$/;
//优化后:
//userName = /^[\w-]{4,16}$/;


2.密码强度

//密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
var pPattern = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;<br><br>
//密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间
var  reg = /^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$/;


3.整数

//正整数正则
var posPattern = /^\d+$/;
//负整数正则
var negPattern = /^-\d+$/;
//整数正则
var intPattern = /^-?\d+$/;


4.数字(可以整数也可以浮点数)

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)$


5.Email

//Email正则
var ePattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
//优化后:
var ePattern =/^([\w\-\.])+\@([\w\-\.])+\.([A-Za-z]{2,4})$/;
//else
var  reg =/[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?/;


6.手机号码

//手机号正则
var mPattern = /^1[34578]\d{9}$/;

 

7.身份证号

//身份证号(18位)正则
var cP = /^[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]$/;<br><br>
//15位:
var reg = /^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$/


8.URL

//URL正则
var urlP= /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;


9.IPV4地址

//ipv4地址正则
var ipP = /^(?:(?: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]?)$/;


10.十六进制颜色

//RGB Hex颜色正则
var cPattern = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;


11.日期

//日期正则,简单判定,未做月份及日期的判定
var dP1 = /^\d{4}(\-)\d{1,2}\1\d{1,2}$/;
//日期正则,复杂判定
var dP2 = /^(?:(?!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)$/;
var  reg2 = /^(^(\d{4}|\d{2})(\-|\/|\.)\d{1,2}\3\d{1,2}$)|(^\d{4}年\d{1,2}月\d{1,2}日$)$/;

 

12.QQ号码

//QQ号正则,5至11位
var qqPattern = /^[1-9][0-9]{4,10}$/;


13.微信号

//微信号正则,6至20位,以字母开头,字母,数字,减号,下划线
var wxPattern = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;

 

14.车牌号

//车牌号正则
var cPattern = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;


15.包含中文

//包含中文正则
var cnPattern = /[\u4E00-\u9FA5]/;<br><code class="js keyword">var</code>  <code class="js plain">reg = /^[\\u4e00-\\u9fa5]{0,}$/;</code>


16.文件路径及扩展名

//验证 windows下文件路径和扩展名(下面的例子中为.txt文件)
var reg = /^([a-zA-Z]\\:|\\\\)\\\\([^\\]+\\)*[^\\/:*?"<>|]+\\.txt(l)?$/;


17.提取Color Hex Codes

//有时需要抽取网页中的颜色代码,可以使用下面的表达式。
var  reg = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;


18.提取网页中的图片

//提取网页图片假若你想提取网页中所有图片信息,可以利用下面的表达式。
var reg = /\\< *[img][^\\>]*[src] *= *[\\"\']{0,1}([^\\"\'\ >]*)/;

 

19.提取页面超链接

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


20.查找css属性

//下面的表达式,可以搜索到相匹配的CSS属性。
var reg = /^\\s*[a-zA-Z\\-]+\\s*[:]{1}\\s[a-zA-Z0-9\\s.#]+[;]{1}/;


21.抽取注释

//如果你需要移除HMTL中的注释,可以使用如下的表达式。
var reg = /<!--(.*?)-->/;


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/1115

密码强度的正则表达式(JavaScript)总结

本文给出了两个密码强度的正则表达式方案,一个简单,一个更复杂和安全。并分别给出了两个方案的解析和测试程序。一般大家可以根据自己的项目的实际需要,自行定义自己的密码正则约定。

JavaScript 正则表达式

正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。

js最新手机号码、电话号码正则表达式

一般表单页面都需要填写手机号,校验用户输入的手机号码是否正确,就要用到正则表达式,用正则表达式来匹配手机号段,如在运营商号段内,则号码正确。因此,需要知道运营商最新的号段,如下所示:

Js正则表达式位数和零宽断言

在有需要正则表达式,很常见的操作就百度一下。看能不能找到满足我需求的。有时候你会找到的,比如手机校验,密码校验,邮箱校验。但是很多人往往都看不懂网上的正则的意思

一次记住js的6个正则方法

来记忆一些常用特殊字符,这个是正则本身的范畴了,是不是总觉得记不住?其实我也记不住,每次都是去搜索和online验证来完成一些任务。我也困恼过,其实最后还是因为自己写的少吧,唯手熟尔。。。

JS 正则表达式^$详解,^与$同时写表示什么意思?

对于初学正则的同学来说,^$这两个看似简单的字符却在使用中总让匹配结果超出我们的预期,^什么时候表示行首什么时候表示反义?^ $两个一起写表示什么含义?今天我们就来详细聊聊这两个字符。

从vue模板解析学习正则表达式

最近在看vue的模板解析成render这一块,顺便补一下正则的知识。attribute这段正则很长,他的主要作用是匹配标签里的指令,可以分几个分组来解读

正则表达式后行断言 • 探索 ES2018 和 ES2019

先后行断言(Lookaround Assertion)是正则表达式中的一个构造,明确了当前位置的前后字符序列,但没有其他副作用。当前 JavaScript 唯一支持的 Lookaround Assertion 是 先行断言,其匹配当前位置接下来的字符序列

JavaScript正则表达式常用技巧

正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript 中,正则表达式也是对象。这些模式被用于 RegExp 的 exec 和 test 方法, 以及 String 的 match、matchAll、replace、search 和 split 方法

前端正则表达式书写

/正则表达式/修饰符/i (忽略大小写),/g (全文查找出现的所有匹配字符),/m (多行查找),/gi(全文查找、忽略大小写),/ig(全文查找、忽略大小写),不写修饰符默认只匹配一个

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!