前端开发中常用的100个正则表达式
当涉及前端开发时,正则表达式是一个强大的工具,它能够帮助你处理字符串匹配、验证、替换等任务。作为开发者,你可能会发现以下这“前端开发中常用的100个正则表达式”极其有用。这个列表涵盖了广泛的应用场景,从Email验证和URL匹配到CSS属性提取和Markdown标记解析,以及更多。
这些精心挑选的正则表达式可以帮助你轻松处理输入验证、格式化文本、提取数据以及与用户的交互。无论你是初学者还是有经验的开发者,这个列表都能为你节省时间并提升工作效率。
收藏这个正则表达式集合,它将成为你前端工具箱中的一把利器,助你更快地解决开发问题,让你专注于构建出色的用户体验。无论你是构建网站、移动应用还是其他前端项目,这些正则表达式都将成为你不可或缺的帮手。
Email验证:
1
/^[\w\.-]+@[a-zA-Z\d\.-]+\.[a-zA-Z]{2,}$/
URL验证:
1
/^(https?:\/\/)?([a-zA-Z\d-]+\.)*[a-zA-Z\d-]+\.[a-zA-Z]{2,6}([\/\w \.-]*)*\/?$/
用户名验证(只允许字母数字下划线,长度为4-16):
1
/^[a-zA-Z0-9_]{4,16}$/
密码验证(包含至少一个数字和一个大写字母,长度为8-20):
1
/^(?=.*\d)(?=.*[A-Z]).{8,20}$/
手机号验证(简化版,仅验证11位数字):
1
/^\d{11}$/
日期格式验证(YYYY-MM-DD):
1
/^\d{4}-\d{2}-\d{2}$/
IP地址验证:
1
/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
身份证号验证(18位):
1
/^\d{17}[\dXx]$/
金额验证(最多两位小数):
1
/^\d+(\.\d{1,2})?$/
HTML标签匹配:
1
/<([a-z]+)\s*[^>]*>[\s\S]*<\/\1>/i
去除空白字符:
1
/\s/g
提取数字:
1
/\d+/g
提取URL中的域名:
1
/^(https?:\/\/)?([a-zA-Z\d-]+\.)*([a-zA-Z\d-]+\.[a-zA-Z]{2,6})/
匹配电话号码(支持带区号和不带区号的格式):
1
/^(\d{3,4}-)?\d{7,8}$|^\d{11}$/
匹配中文字符:
1
/[\u4e00-\u9fa5]/
提取HTML中的文本内容:
1
/<[^>]*>/g
匹配16进制颜色代码:
1
/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/
匹配HTML注释:
1
/<!--[\s\S]*?-->/
匹配整数:
1
/^-?\d+$/
匹配小数:
1
/^-?\d+(\.\d+)?$/
匹配手机号(中国):
1
/^1[3456789]\d{9}$/
匹配邮政编码(中国):
1
/^[1-9]\d{5}$/
匹配QQ号码:
1
/^[1-9][0-9]{4,10}$/
匹配正整数:
1
/^[1-9]\d*$/
匹配负整数:
1
/^-[1-9]\d*$/
匹配非负整数(正整数 + 0):
1
/^\d+$/
匹配非正整数(负整数 + 0):
1
/^-[1-9]\d*|0$/
匹配整数或小数:
1
/^-?\d+(\.\d+)?$/
匹配年份(1900-2099):
1
/^(19|20)\d{2}$/
匹配月份(1-12):
1
/^(0?[1-9]|1[0-2])$/
匹配日期(1-31):
1
/^((0?[1-9])|((1|2)[0-9])|30|31)$/
匹配日期(YYYY-MM-DD):
1
/^(?:(?!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[2]-29))$/
匹配时间(HH:MM):
1
/^([01]\d|2[0-3]):[0-5]\d$/
匹配HTML标签内的属性值:
1
/([a-zA-Z\-]+)(=)(["'])(.*?)(["'])/g
匹配16进制数:
1
/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
匹配图片文件名:
1
/^.+\.(jpg|jpeg|png|gif|bmp)$/
匹配视频文件名:
1
/^.+\.(mp4|avi|mov|flv|wmv)$/
匹配音频文件名:
1
2
3/^.+\.(mp
3|wav|ogg|aac)$/匹配压缩文件名:
1
/^.+\.(zip|rar|7z|tar\.gz)$/
匹配英文字母(大小写):
1
/^[a-zA-Z]+$/
匹配大写英文字母:
1
/^[A-Z]+$/
匹配小写英文字母:
1
/^[a-z]+$/
匹配英文字母和数字:
1
/^[a-zA-Z0-9]+$/
匹配整数范围(1-100):
1
/^([1-9]|[1-9][0-9]|100)$/
匹配中文、英文字母和数字:
1
/^[\u4E00-\u9FA5A-Za-z0-9]+$/
匹配16进制颜色值(含透明度):
1
/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{8})$/
匹配CSS选择器:
1
/^([a-zA-Z#][\w-]*|\.[\w-]+)(,[ \t]*([a-zA-Z#][\w-]*|\.[\w-]+))*[ \t]*$/
匹配IPv6地址:
1
/^(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}$/i
匹配Markdown的标题(# 标题):
1
/^#{1,6}\s.+$/
匹配Markdown的链接:
1
/\[([^\]]+)\]\(([^)]+)\)/g
匹配Markdown的图片:
1
/\!\[([^\]]+)\]\(([^)]+)\)/g
匹配Markdown的粗体文本(文本):
1
/\*\*(.*?)\*\*/g
匹配Markdown的斜体文本(文本):
1
/\*(.*?)\*/g
匹配Markdown的引用(> 引用内容):
1
/^>\s.+$/
匹配Markdown的无序列表(- 列表项):
1
/^- .+$/
匹配Markdown的有序列表(1. 列表项):
1
/^\d+\.\s.+$/
匹配Markdown的代码块(
代码
):1
/^```[ \t]*[a-zA-Z]*\s[\s\S]*?```$/
匹配Markdown的表格行(| 列1 | 列2 |):
1
/^\|.*\|$/
匹配Markdown的删除线(
文本):1
/~~(.*?)~~/g
匹配Markdown的下划线(文本):
1
/<u>(.*?)<\/u>/g
匹配Markdown的加粗斜体文本(文本):
1
/\*\*\*(.*?)\*\*\*/g
匹配Markdown的标签(@标签):
1
/@[a-zA-Z0-9_]+/
匹配Markdown的标题(Setext风格):
1
/^[^\n]+\n(=+|-+)$/g
匹配CSS属性:
1
/^[a-zA-Z-]+\s*:\s*[^;]+;$/g
匹配CSS单位:
1
/\d+(px|em|rem|vh|vw|%)$/g
匹配CSS颜色值(#RRGGBB、#RRGGBBAA、rgb(R, G, B)):
1
/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{8})$|^rgb\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*\)$/
匹配CSS选择器中的类名(.class):
1
/\.[\w-]+/g
匹配CSS选择器中的ID名(#id):
1
/\#[\w-]+/g
匹配CSS选择器中的标签名(tag):
1
/^[a-zA-Z-]+$/
匹配JSON属性名:
1
/"[\w-]+":/g
匹配XML标签:
1
/<\/?[a-zA-Z][\w-]*(\s+[a-zA-Z][\w-]*="[^"]*")*\s*\/?>/g
匹配Markdown的任务列表(- [ ] 任务):
1
/^- \[[x ]\] .+$/
匹配Markdown的块引用(> 引用):
1
/^> .+$/
**匹配Markdown的代码块(```
代码1
2```regex
/^```[ \t]*[a-zA-Z]*\n[\s\S]*?\n```$/匹配Markdown的脚注([^注释]:注释):
1
/^\[\^[^\]]+\]: .+$/
匹配Markdown的链接引用([文本][标识]):
1
/\[.+\]:\s.+$/
**匹配Markdown的水平分割线(— 或 *):
1
/^(---|\*\*\*)$/
匹配Markdown的图片引用(![文本][标识]):
1
/!\[.+\]:\s.+$/
匹配Markdown的HTML标签:
1
2
3/<\/?[a-zA-Z][\w-]*(\s+[a-zA
-Z][\w-]*="[^"]*")*\s*\/?>/g匹配Markdown的HTML实体字符(&entity;):
1
/&[a-zA-Z\d]+;/
匹配Markdown的特殊字符(*、_等):
1
/\\[\*\_\[\]\<\>\!\`\\\(\)]/g
匹配Markdown的表格分隔符行(| — | — |):
1
/^\|(\s*-+\s*\|)+$/
匹配Markdown的列表项(-、+、*):
1
/^[ \t]*([-+*])[ \t]+.+$/
匹配HTML标签的属性:
1
/[a-zA-Z-]+=["'][^"']["']/
匹配HTML注释:
1
/<!--[\s\S]*?-->/g
匹配JS的单行注释:
1
/\/\/.+$/
匹配JS的多行注释:
1
/\/\*[\s\S]*?\*\//
匹配JS函数定义:
1
/function\s+\w+\s*\([^)]*\)\s*\{[\s\S]*?\}/
匹配JS的变量名:
1
/\b\w+\b(?=[^\(\)]*\s*(?:\(|$))/g
匹配JS的字符串:
1
/["'`][\s\S]*?["'`]/g
匹配JS的数字:
1
/\b\d+(\.\d+)?\b/g
匹配JS的关键字(if、for、while等):
1
/\b(if|else|for|while|function|return|break|continue)\b/g
匹配JS的对象字面量属性名:
1
/["']\w+["']\s*:/g
匹配JS的类名:
1
/\bclass\s+\w+\b/g
匹配JS的箭头函数:
1
/\([\w\s,]*\)\s*=>\s*[\s\S]*?}/g
匹配JS的模板字符串:
1
/`[\s\S]*?`/g
匹配JS的async函数:
1
/\basync\s+function\b/g
匹配JS的import语句:
1
/\bimport\s+.+\s+from\b/g
匹配JS的export语句:
1
/\bexport\s+.+\b/g
匹配JS的Promise.then()语句:
1
/\.\s*then\s*\(\s*function\s*\(/g
这些是前端开发中一些常用的正则表达式,涵盖了多个方面的需求。在使用这些正则表达式时,建议在实际情况下进行测试和调整,以确保符合你的需求。正则表达式可能会因为特殊情况而需要适当的调整。