时间:2021-05-02
前言
正则这东西吧,感觉是开发的都会接触到一些..
那些所谓的基础语法就不说了哈,一搜一大把,来点实际的.
我这里就分享下我工作中汇总和遇到的,希望对一些小伙伴有些许帮助哈!!
正则汇总
匹配URL
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 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匹配中国身份证不大靠谱版
? 1 2 3 4 5 6 7 8 9 // 为什么说不靠谱,是因为单单正则没法实现区域结合出生日期的判断这种很精准的识别 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匹配数字,整数,浮点~~~
? 1 2 3 4 5 6 7 8 // 这货只会匹配正整数 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;匹配手机号码
? 1 2 // 不含卫星电话这些,只是罗列的常见的手机范围,也考虑了区域和长途前缀 const regexMobileNumber = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/gi;匹配邮箱
? 1 2 3 4 5 6 7 8 9 10 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加强版密码设置规范
? 1 2 // 必须含有大小写字母,数字及特殊符号,长度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号,微信号
? 1 2 3 4 5 6 7 8 // 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;用户名规范
? 1 2 3 4 5 6 // 普通版,英文+数字,必须字母开头,允许下划线,长度八到十六 const regexNormalUsername = /^[a-zA-Z]\w{7,15}$/gi; // 在这个基础上允许中文四到六个字符 const regexE1 = /^[\u4e00-\u9fa5]{4,6}$|^[a-zA-Z]\w{7,15}$/gi; // 多重复用版本,允许手机,邮箱,中文,这个若是写成一个的话,用分组的写法就好了 // 不过很长很长,,,推荐用if...else ...来拆分,,就三个正则....总结
我没有那么多奇奇怪怪的正则,这些都是工作中很常见的,
所有正则都是经过真实环境下的考验,不是假想推断的正则….
以上所述是小编给大家介绍的前端常用正则表达式汇总,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://blog.csdn.net/crper/article/details/75213256
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
感谢AKA及作者。Perl中的正则表达式正则表达式的三种形式正则表达式中的常用模式正则表达式的8大原则 正则表达式是Perl语言的一大特色,也是Perl程序中
这里说的正则表达式优化,主要是针对目前常用的NFA模式正则表达式,详细可以参考:正则表达式匹配解析过程探讨分析(正则表达式匹配原理)。从上面例子,我们可以推断出
1、正则表达式包括两部分①定义正则表达式的规则;②正则表达式的模式(i/g/m);2、声明正则表达式①字面量声明:varreg=/表达式规则/表达式模式; e
相关阅读:IOS开发常用的正则表达式Java正则表达式过滤出字母、数字和中文正则表达式(regularexpression)描述了一种字符串匹配的模式,可以用来
正则表达式是Python程序设计中非常实用的功能,本文就常用的正则表达式做一汇总,供大家参考之用。具体如下:一、字符串替换1.替换所有匹配的子串用newstri