![7cc223f0f92daf1c407b3d0fe7e2e36c.png](https://i-blog.csdnimg.cn/blog_migrate/3c247574afe2baa19b616b3f3119fe51.jpeg)
一:关于数字:
1.全为数字: /^d*$/
d:匹配数字
a*:0或多次a
^a: a开头
a$:a结尾
2.至少n位数字:/^d{n,}$/
a{n}:a指定n次
a{n,}:a至少n次
a{n,m}:a指定n到m次
3.非零开头的数字:/^[1-9]d*$/
[xyz]: 字符集合,匹配其中任意字符,[1-3]表示123
ps: 如果为number类型 0231会自动转为231 匹配成功
4.以155,188,130,132开始的电话号码: /^(155|188|130|132)d{8}$/
x|y: 匹配x或y
5.最多两位小数的数字:/^d+(.d{1,2})?$/
. :对 "." 进行转义
a+:一个或多个a
():分组
?:惰性匹配,匹配次数最小化,这里解读为【要么有一个小数点且字数控制在1-2】【要么有小数点且一个小数都没有】【即使是"1."这样也不行,因为没有小数出现惰性】
?跟在数量词*,+,{} 后,都会使匹配次数最小化
6.正数或负数:/^(-)?d+$/
7.浮点数:/^(-)?d+.d+?$/
8.货币形式千位分隔符: JavaScirpt 货币转换成千分位正则 (非捕组获匹配详解)
p
?= exp 正向前瞻, ?!exp反向前瞻,与b类似,匹配位置
![74a5a795087a75a9a3def5558a9ef341.png](https://i-blog.csdnimg.cn/blog_migrate/014feb11a497f7bdff45e4dc3852604e.png)
变换:
p = /B(?=(d{3})+(?!d))/;
n = 12344353.88
res = String(n).split(p).join(',') // String(n).replace(p,',')
9.匹配数字 1-64
p
![4a0c51a3bd4e7815097add97dbed9bf7.png](https://i-blog.csdnimg.cn/blog_migrate/9be4fdad840d50b81aa81636dd2c2bf1.jpeg)
(?:x) 整体匹配 (?:foo){1,2} 与 foo{1,2} 的区别
x(?=y) 当x后面是y匹配x
(?<=y)x 当x前面是y匹配x
x(?!y) x后面不是y匹配x
(?<!y)x x前面不是y匹配x
woc:真记不住啊,我看下我要复习多少遍
- 9.5 一遍
- 9.14 又它喵忘了
二:关于字符
1.中文:/^[u4e00-u9fa5]+$/
2.英文:/^[a-z]+$/i 或 /^[a-zA-Z]+$/
修饰符 i:忽略大小写
3.匹配英文和数字 /^[a-zA-Z0-9]+$/
4.匹配英文全名 /[a-z]+s[a-z]+/i
s匹配空白字符
5.去除输入值得前后空白符:
p
修饰符 g:全局匹配,没有 g 结果为"xxx "
6.匹配数字字母中文及下划线 /^[a-zA-Z0-9u4E00-u9FA5_]+$/
[^xyz]:不包括括号内的任意字符
7.匹配邮箱: /^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/
w:匹配数字字母下划线
8.改变姓名中名和姓的位置
str
():括号分组,使用$1 ~ $n来获取匹配的内容
三.match匹配
1.获取歌曲的时间:
let
![33c3fd2cbf1ea1f56cde39137764e75d.png](https://i-blog.csdnimg.cn/blog_migrate/675dd7e10f53db548ab28b47c5e802ba.jpeg)
2.获取歌手和歌名
str
![a25c210c836220a0dca292fdbd36ffe0.png](https://i-blog.csdnimg.cn/blog_migrate/bb7d41d7ba3a65dfb96a2674d55b1b4f.jpeg)
四.其他
1.写一个decode函数,满足以下规则(不区分大小写)
decode
答案:
function
PS:replace第二个参数可以是一个函数,该函数的参数分别为:匹配字符串,剩余是$1 到 $n 的顺序。
2.写一个函数把数值转化为对应的中文表达方式
限制条件:需要支持小数
示例:
formate
其他:货币千分位分割可以使用API:(会丢失小数位)
n
![0775e8c1e89ce729fe2fb66f51032708.png](https://i-blog.csdnimg.cn/blog_migrate/edc4a08fca91c50209c0ec6a5edca47a.png)
Appendix:
MDN
前端进阶必须知道的正则表达式知识
持续更新中 ...