1、仅匹配数字字符串
正则表达式:
/^\d+$/
简单解释:
-
^ 表示字符串的开头
-
\d+ 匹配一位或多位数字
-
$ 表示字符串的结尾
正则表达式:
/^\d+(\.?\d+)?$/
简单解释:
-
\.匹配单个 char 。
-
? 表示可选。
-
() 表示一个组
(\.?\d)? 是一个可选组
3、字母数字字符
正则表达式:
/^[a-zA-Z0-9]+$/
简单解释:
- [a-zA-Z0–9] 匹配所有字母和数字
4、字符串中留出空格 allow space
正则表达式:
/^[a-zA-Z0-9\s]+$/
简单解释:
- \s 匹配空白
5、电子邮件
正则表达式1:
^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
正则表达式2:
^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$
6、密码
正则表达式1:
^[a-zA-Z]\w{8,20}$
简单解释:
- 密码的第一个字符必须是字母,它必须包含至少 8 个字符且不超过 20 个字符,并且不能使用除字母、数字和下划线以外的字符。
正则表达式2:
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^\w\s]).{8,}$/
简单解释:
- 至少 8 个字符
- 至少 1 个数字字符
- 至少 1 个小写字母
- 至少 1 个大写字母
- 至少 1 个特殊字符
正则表达式3:
const validatePassword = (password) => /^[a-zA-Z0-9_]{6,18}$/.test(password);
简单解释:
- 密码6-18 个字符:字母、数字、下划线
7、用户名
正则表达式:
/^[a-zA-Z0-9_-]{3,16}$/
简单解释:
- 可能包含 _ 和 — 的字母数字字符串,长度为 3 到 16 个字符。
8、网址
正则表达式:
/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*)/
简单解释:
- 检查字符串是否为 URL
9、IP地址
IPv4
正则表达式:
^((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]?)$
IPv6
正则表达式:
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))
10、日期
正则表达式1:(使用分隔符的日期格式 YYYY-MM-dd -)
/([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/
正则表达式2:(日期格式 dd-MM-YYYY 使用分隔符 - 或 . /)
/^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/
11、电话号码
eg: 123-456-7890
(123) 456-7890
123 456 7890
123.456.7890
+91 (123) 456-7890
正则表达式:
/<\/?[\w\s]*>|<.+[\W]>/
12、 验证 2-9 个中文字符
eg: 大概豆腐干
正则表达式:
const validateName = (name) => /^[\u4e00-\u9fa5]{2,9}$/.test(name);
13、 验证手机号
eg: 14985632695
正则表达式:
const validatePhoneNum = (mobile) => /^1[3-9]\d{9}$/.test(mobile);
14、 过滤特殊字符
使用正则表达式可以方便地过滤字符串中的特殊字符
正则表达式:
function filterCharacter(str) {
let pattern = new RegExp("[`~!@#$^&*()=:""'。,、?|{}':;'%,\\[\\].<>/?~!@#¥……&*()&;—|{ }【】';]");
let resultStr = "";
for (let i = 0; i < str.length; i++) {
resultStr = resultStr + str.substr(i, 1).replace(pattern, '');
}
return resultStr;
}
filterCharacter('gyaskjdhy12316789#$%^&!@#1=123,./['); // "gyaskjdhy123167891123"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了