常用正则
正则表达式是对象,用来匹配字符串的字符组合
边界符
以^
开头,以&
结尾,可以实现精确匹配
范围符
以[]
限定,只需要匹配其中一个就可以
-
为范围符
^
在中括号内表示取反,在外面表示开头
量词符 *
相当于>=0,出现 0 次或多次
+
相当于>=1,出现 1 次货多次
?
相当于出现 1 或 0 次
{n}
出现 n 次
{n,}
大于等于 n 次
{n,m}
n-m 次
正则里面的小括号表示优先级
预定义类
\d
相当于 0-9
\D
取反 0-9
\w
相当于任意字母,数字,下划线
\W
取反字母、数字、下划线
\s
相当于空格、下划线、制表符等
\S
相当于取反空格等
正则里面的或者符号为一个|
正则表达式中替换使用 replace(需要替换的值或正则,替换的值);只能替换第一个字符串
/
表达式/值,值有三种
g
,全局匹配
i
,忽略大小写
gi
,全局表达式+忽略大小写
n 位数字
const reg = /^\d{n}$/ if (reg.test(value) === true) { console.log(`匹配成功`) }
是否以负号或 0-9 的数字开头(含小数)
const reg = /^(-|\+)?\d+(\.\d+)?$/ if (reg.test(value) === true) { console.log(`匹配成功`) }
[0-100]不含 0 和 100,只匹配整数
const reg = /^([1-9][0-9]{0,1}|99)$/ if (reg.test(value) === true) { console.log(`匹配成功`) }
[0-100]不含 0 和 100,保留小数点后 1 位
const reg = /^([1-9]\d{0,2}|99.9)(\.\d{1})?$/ if (reg.test(value) === true) { console.log(`匹配成功`) }
[0-100]不含 0 和 100,保留小数点后 3 位
const reg = /^([1-9][0-9]{0,3}(\.\d{1,3})?|99.999)$/ if (reg.test(value) === true) { console.log(`匹配成功`) }
含 0 开头需要先做数据处理
cosnt vaule = val.replace(/^0+(\d)/, '$1').replace(/^\./, '0.') //第一个replace 0开头,0后为数字,则去掉0 第二个replace 第一位. ,补全0
[0-100]含 0 和 100,只匹配整数
const reg = /^([0-9][0-9]{0,1}|100)$/ if (reg.test(value) === true) { console.log(`匹配成功`) }
[0-100]含 0 和 100,保留小数点后 1 位
const reg = /^([0-9]\d{0,2}|100)(\.\d{1})?$/ if (reg.test(value) === true) { console.log(`匹配成功`) }
[0-100]含 0 和 100,保留小数点后 3 位
const reg = /^([0-9][0-9]{0,3}(\.\d{1,3})?|100)$/ if (reg.test(value) === true) { console.log(`匹配成功`) }
其他
^\d+$ // 匹配非负整数(正整数 + 0) ^[0-9]*[1-9][0-9]*$ // 匹配正整数 ^((-\d+)|(0+))$ // 匹配非正整数 (负整数 + 0) ^-[0-9]*[1-9][0-9]*$ // 匹配负整数 ^-?\d+$ // 匹配整数 ^\d+(\.\d+)?$ // 匹配非负浮点数(正浮点数 + 0) ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ // 匹配正浮点数 ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匹配非正浮点数(负浮点数 + 0) ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ // 匹配负浮点数 ^(-?\d+)(\.\d+)?$ // 匹配浮点数 ^[A-Za-z]+$ // 匹配由26个英文字母组成的字符串 ^[A-Z]+$ // 匹配由26个英文字母的大写组成的字符串 ^[a-z]+$ // 匹配由26个英文字母的小写组成的字符串 ^[A-Za-z0-9]+$ // 匹配由数字和26个英文字母组成的字符串 ^\w+$ // 匹配由数字、26个英文字母或者下划线组成的字符串 ^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ // 匹配email地址 [\u4e00-\u9fa5] // 匹配中文字符的正则表达式 [^\x00-\xff] // 匹配双字节字符(包括汉字在内) \n[\s| ]*\r // 匹配空行的正则表达式 /<(.*)>.*<\/\1>|<(.*)\/> // 匹配HTML标记的正则表达式 ^\S+[a-z A-Z]$ // 匹配首尾空格的正则表达式 ^\d{4}\-\d{1,2}-\d{1,2}$ // 只能是2004-10-22格式 ^\+?[a-z0-9](([-+.]|[_]+)?[a-z0-9]+)*@([a-z0-9]+(\.|\-))+[a-z]{2,6}$ // 邮件 \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*([,;]\s*\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)* // 输入多个地址用逗号或空格分隔邮件 ^(\([0-9]+\))?[0-9]{7,8}$ // 电话号码7位或8位或前面有区号例如(022)87341628 ^[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(\.[a-z A-Z 0-9 _]+)+(\,[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(\.[a-z A-Z 0-9 _]+)+)*$ //只能是字母、数字、下划线;必须有@和.同时格式要规范 邮件 ^\w+@\w+(\.\w+)+(\,\w+@\w+(\.\w+)+)*$ //简写
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!