正则数字和小数点_正则实践与详解

7cc223f0f92daf1c407b3d0fe7e2e36c.png

一:关于数字:

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

变换:

p = /B(?=(d{3})+(?!d))/;
n = 12344353.88
res = String(n).split(p).join(',') // String(n).replace(p,',')

9.匹配数字 1-64

p 

4a0c51a3bd4e7815097add97dbed9bf7.png
深信服笔试
(?: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

2.获取歌手和歌名

str 

a25c210c836220a0dca292fdbd36ffe0.png

四.其他

1.写一个decode函数,满足以下规则(不区分大小写)

decode

答案:

function 

PS:replace第二个参数可以是一个函数,该函数的参数分别为:匹配字符串,剩余是$1 到 $n 的顺序。

2.写一个函数把数值转化为对应的中文表达方式

限制条件:需要支持小数

示例:

formate

其他:货币千分位分割可以使用API:(会丢失小数位)

n 

0775e8c1e89ce729fe2fb66f51032708.png

Appendix:

MDN

前端进阶必须知道的正则表达式知识

持续更新中 ...

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值