前端常用正则表达式汇总

栏目: 编程语言 · 正则表达式 · 发布时间: 8年前

内容简介:对于正则表达式,我们或许会经常使用,但是又很难记住。这篇文章,我将介绍下简单的正则表达式知识,然后总结前端开发中常用的正则表达式大全,需要的的朋友参考下

前言

正则这东西吧,感觉是开发的都会接触到一些..

那些所谓的基础语法就不说了哈,一搜一大把,来点实际的.

我这里就分享下我工作中汇总和遇到的,希望对一些小伙伴有些许帮助哈!!

正则汇总

匹配URL

const regexURL = /((https?|ftp)?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/gi;
// 这条正则可以匹配这么一坨格式的url
//www.baidu.com
//http://www.baidu.com
//https://www.baidu.com
//baidu.com
//test.baidu.com  
//gds.baidu.com
//ftp://www.baidu.com
// ---- 分割线 ---- 
// 也许有小伙伴不需要匹配这么一大坨,只要匹配http和https,上面的改写一下就好了
const regexURL = /(https?:\/\/)(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/gi;
//http://www.baidu.com
//https://www.baidu.com

匹配中国身份证不大靠谱版

// 为什么说不靠谱,是因为单单正则没法实现区域结合出生日期的判断这种很精准的识别
const regexCHINAIDCARD = /^((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|71|(8[12])|91)\d{4}((19\d{2}(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(19\d{2}(0[13578]|1[02])31)|(19\d{2}02(0[1-9]|1\d|2[0-8]))|(19([13579][26]|[2468][048]|0[48])0229))\d{3}(\d|X|x)?$/gi;
// 可以匹配这么一堆身份证,身份证号码都是网络搜索的,一搜一堆
//230381198104143414
//650201199007186135
//460106197707275739
//44200019860325932X
//43052819880216450X
//654223197502255401

匹配数字,整数,浮点~~~

// 这货只会匹配正整数
const regexInteger = /^\d+$/gi;
// 肯定有人想问,范围性的整数呢,看我改下,比如0-100
const regexRangeInteger = /^\d$|^[1-9]\d$|^100$/gi;
// 匹配小数呢,不限定范围的
const regexFloat = /^\d+\.\d+$/gi
// 倘若要限定呢,比如还是那个,0~100的任意整数和浮点数
const regexRangeIntFloat = /^(\d{0,2}(\.\d+)?|100(\.0+)?)$/gi;

匹配手机号码

// 不含卫星电话这些,只是罗列的常见的手机范围,也考虑了区域和长途前缀
const regexMobileNumber = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/gi;

匹配邮箱

const regexEmail = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9_]+\.)+[a-zA-Z]{2,}))$/gi
// 已经不靠谱的测试了这么几种写法的邮箱格式都通过了
//cc011@qq.com
//fsdlk@dd-fad.cn
//df_fs2.q@jd-f.com
//crklej-dsfj@132.com
//fdfkj@aa_fslkdfj.com.cn
//d390.fslk@qq.com
//1100@gmail.cn
//sflk-98_dsf@qq_fsk.com

加强版密码设置规范

// 必须含有大小写字母,数字及特殊符号,长度8~24
const regexEnhancePassword = /^(?!\s)((?=.*[a-zA-Z])(?=.*[a-z])(?=.*[A-Z])(?=.*[\W_]).\S{8,24})$/g;

中国车牌号校验

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

匹配QQ号,微信号

// QQ在我印象中好像一直都是纯数字,现在好像发展到11位了,好像最初是从100000开始的
const regexQQNumber = /^[1-9]\d{5,10}$/gi;
// 特意去查了下最新的微信号的规则
//1、微信号是微信的唯一凭证,只能设置1次;
//2、可使用6-20个字母、数字、下划线和减号;
//3、必须以字母开头(字母不区分大小写);
//4、不支持设置中文。
const regexWeChatNumber = /^[A-Za-z][\w-]{5,19}$/gi;

用户名规范

// 普通版,英文+数字,必须字母开头,允许下划线,长度八到十六
const regexNormalUsername = /^[a-zA-Z]\w{7,15}$/gi;
// 在这个基础上允许中文四到六个字符
const regexE1 = /^[\u4e00-\u9fa5]{4,6}$|^[a-zA-Z]\w{7,15}$/gi;
// 多重复用版本,允许手机,邮箱,中文,这个若是写成一个的话,用分组的写法就好了
// 不过很长很长,,,推荐用if...else ...来拆分,,就三个正则....

我没有那么多奇奇怪怪的正则,这些都是工作中很常见的,

所有正则都是经过真实环境下的考验,不是假想推断的正则….


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Data Structures and Algorithm Analysis in Java

Data Structures and Algorithm Analysis in Java

Mark A. Weiss / Pearson / 2011-11-18 / GBP 129.99

Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course wa......一起来看看 《Data Structures and Algorithm Analysis in Java》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具