7

2022前端必用⭐正则大全, 请🚀提前收好.

 2 years ago
source link: https://segmentfault.com/a/1190000041153005
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

你好, 我是any-rule(一个vscode插件)的作者, 感谢大家长期以来对any-rule的喜爱. 经过大家1年多的使用, any-rule后台已经有了10w+的日志记录, 年底了分享下这1年中大家最喜欢的正则有哪些.

https://github.com/any86/any-...

🔥正则TOP10

image.png

不出所料, 最常用的正则是"手机"

🚀具体使用数据

接下来我们看看近一年正则使用的整体排名.

手机号(mobile phone)中国(宽松), 只要是13,14,15,16,17,18,19开头即可

(12534次)

/^(?:(?:\+|00)86)?1[3-9]\d{9}$/

手机号(mobile phone)中国(严谨), 根据工信部2019年最新公布的手机号段

(11382次)

/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/

email(邮箱)

(10555次)

/^(([^<>()[\]\\.,;:\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,}))$/

密码强度校验,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符

(8118次)

/^\S*(?=\S{6,})(?=\S*\d)(?=\S*[A-Z])(?=\S*[a-z])(?=\S*[!@#$%^&*? ])\S*$/

(7577次)

/^\d{1,}$/

手机号(mobile phone)中国(最宽松), 只要是1开头即可, 如果你的手机号是用来接收短信, 优先建议选择这一条

(5899次)

/^(?:(?:\+|00)86)?1\d{10}$/

身份证号(2代,18位数字),最后一位是校验位,可能为数字或字符X

(5032次)

/^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/

手机机身码(IMEI)

(4889次)

/^\d{15,17}$/

身份证号, 支持1/2代(15位/18位数字)

(4266次)

/^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/

中文/汉字

(3978次)

/^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])+$/

(3911次)

/^[GCDZTSPKXLY1-9]\d{1,4}$/

(3768次)

/^(?:[\u4e00-\u9fa5·]{2,16})$/

用户名校验,4到16位(字母,数字,下划线,减号)

(3701次)

/^[a-zA-Z0-9_-]{4,16}$/

数字/货币金额 (只支持正数、不支持校验千分位分隔符)

(3315次)

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

12小时制时间(hh:mm:ss)

(3115次)

/^(?:1[0-2]|0?[1-9]):[0-5]\d:[0-5]\d$/

数字和字母组成

(2559次)

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

银行卡号(10到30位, 覆盖对公/私账户, 参考微信支付

(2395次)

/^[1-9]\d{9,29}$/

座机(tel phone)电话(国内),如: 0341-86091234

(2250次)

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

统一社会信用代码

(2174次)

/^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/

(2146次)

/^\d+\.\d+$/

必须带端口号的网址(或ip)

(2104次)

/^((ht|f)tps?:\/\/)?[\w-]+(\.[\w-]+)+:\d{1,5}\/?$/

16进制颜色

(1584次)

/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/

24小时制时间(HH:mm:ss)

(1561次)

/^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$/

date(日期)

(1510次)

/^\d{1,4}(-)(1[0-2]|0?[1-9])\1(0?[1-9]|[1-2]\d|30|31)$/

大于等于0, 小于等于150, 支持小数位出现5, 如145.5, 用于判断考卷分数

(1459次)

/^150$|^(?:\d|[1-9]\d|1[0-4]\d)(?:\.5)?$/

车牌号(新能源+非新能源)

(1372次)

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

数字/货币金额(支持负数、千分位分隔符)

(1337次)

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

ip-v4[:端口]

(1311次)

/^((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])(?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$/

不能包含字母

(1267次)

/^[^A-Za-z]*$/

中文和数字

(1258次)

/^((?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])|(\d))+$/

统一社会信用代码(宽松匹配)(15位/18位/20位数字/字母)

(1253次)

/^(([0-9A-Za-z]{15})|([0-9A-Za-z]{18})|([0-9A-Za-z]{20}))$/

html标签(宽松匹配)

(1133次)

/<(\w+)[^>]*>(.*?<\/\1>)?/

(1106次)

/^thunderx?:\/\/[a-zA-Z\d]+=$/

qq号格式正确

(1103次)

/^[1-9][0-9]{4,10}$/

数字和英文字母组成,并且同时含有数字和英文字母

(1073次)

/^(?=.*[a-zA-Z])(?=.*\d).+$/

图片(image)链接地址(图片格式可按需增删)

(1057次)

/^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i

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

(975次)

/^[a-zA-Z]\w{4,15}$/

澳门身份证

(967次)

/^[1|5|7]\d{6}\(\d\)$/

大写英文字母

(939次)

/^[A-Z]+$/

微信号(wx),6至20位,以字母开头,字母,数字,减号,下划线

(900次)

/^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/

(890次)

/^[a-zA-Z]+$/

车牌号(非新能源)

(852次)

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

车牌号(新能源)

(813次)

/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z](?:((\d{5}[A-HJK])|([A-HJK][A-HJ-NP-Z0-9][0-9]{4}))|[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳])$/

身份证号(1代,15位数字)

(809次)

/^[1-9]\d{7}(?:0\d|10|11|12)(?:0[1-9]|[1-2][\d]|30|31)\d{3}$/

护照(包含香港、澳门)

(724次)

/(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/

版本号(version)格式必须为X.Y.Z

(706次)

/^\d+(?:\.\d+){2}$/

html注释

(704次)

/<!--[\s\S]*?-->/g

(703次)

/(^[a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]$)/

磁力链接(宽松匹配)

(692次)

/^magnet:\?xt=urn:btih:[0-9a-fA-F]{40,}.*$/

邮政编码(中国)

(569次)

/^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/

股票代码(A股)

(555次)

/^(s[hz]|S[HZ])(000[\d]{3}|002[\d]{3}|300[\d]{3}|600[\d]{3}|60[\d]{4})$/

ed2k链接(宽松匹配)

(517次)

/^ed2k:\/\/\|file\|.+\|\/$/

正整数,不包含0

(504次)

/^\+?[1-9]\d*$/

base64格式

(500次)

/^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i

email(支持中文邮箱)

(478次)

/^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/

视频(video)链接地址(视频格式可按需增删)

(472次)

/^https?:\/\/(.+\/)+.+(\.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb|mp4))$/i

mac地址

(463次)

/^((([a-f0-9]{2}:){5})|(([a-f0-9]{2}-){5}))[a-f0-9]{2}$/i

匹配连续重复的字符

(448次)

/(.)\1+/

香港身份证

(367次)

/^[a-zA-Z]\d{6}\([\dA]\)$/

window"文件夹"路径

(358次)

/^[a-zA-Z]:\\(?:\w+\\?)*$/

小写英文字母组成

(346次)

/^[a-z]+$/

md5格式(32位)

(328次)

/^([a-f\d]{32}|[A-F\d]{32})$/

ip-v6[:端口]

(319次)

/(^(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$)|(^\[(?:(?:(?:[0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))\](?::(?:[0-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$)/i

linux文件夹路径

(313次)

/^\/(?:[^/]+\/)*$/

台湾身份证

(302次)

/^[a-zA-Z][0-9]{9}$/

java包名

(282次)

/^([a-zA-Z_]\w*)+([.][a-zA-Z_]\w*)+$/

window下"文件"路径

(271次)

/^[a-zA-Z]:\\(?:\w+\\)*\w+\.\w+$/

linux文件路径

(269次)

/^\/(?:[^/]+\/)*[^/]+$/

(219次)

/^-?[0-9]\d*$/

linux"隐藏文件"路径

(194次)

/^\/(?:[^/]+\/)*\.[^/]*/

(153次)

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

GUID/UUID

(145次)

/^[a-f\d]{4}(?:[a-f\d]{4}-){4}[a-f\d]{12}$/i

负整数,不包含0

(50次)

/^-[1-9]\d*$/

负整数,不包含0

(50次)

/^-[1-9]\d*$/

感谢大家的阅读, 如有疑问可以加我微信, 我拉你进入微信群(由于腾讯对微信群的100人限制, 超过100人后必须由群成员拉入)


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK