一:关于数字:

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 =  /(d)(?=(d{3})+(?!d))/g
n = 1234567.88
res = String(n).replace(p, '$1,') //1,234,567.88

?= exp 正向前瞻, ?!exp反向前瞻,与b类似,匹配位置

变换:

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

9.匹配数字 1-64

p = /^([1-9]|([1-5][0-9]{1})|(6[0-4]))$/

深信服笔试

(?: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 = /^s+|s+$/g;
val="   xxx   "
val.replace(p,"") //"xxx"

修饰符 g:全局匹配,没有 g 结果为"xxx "

6.匹配数字字母中文及下划线 /^[a-zA-Z0-9u4E00-u9FA5_]+$/

[^xyz]:不包括括号内的任意字符

7.匹配邮箱: /^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/

w:匹配数字字母下划线

8.改变姓名中名和姓的位置

str = "apple orange";
p = /(w+)s(w+)/;
newStr = str.replace(p,"$2 $1") //"orange apple"

():括号分组,使用$1 ~ $n来获取匹配的内容

三.match匹配

1.获取歌曲的时间:

let str = "[00:00.12]hi nice to meet you!"
let rule = /[([d:.]+)](.+)/
let matches = str.match(rule);
let time = matches[1] //00:00.12matches[0]: 整个字符串
matches[1]: 匹配的部分
matches[2]:剩余部分ps:必须配合 () 进行分组

2.获取歌手和歌名

str = "艾索 - 晚安喵.mp3"
rule = /(.+)-(.*).mp3/
matches = str.match(rule);

四.其他

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

decode("2[a]") //aa
decode("2[a]c") // aac
decode("2[ab]2[d]") // ababdd
decode("2[c2[b]]") // cbbcbb

答案:

   function decode(str){let reg = /(d*)[([a-z]*)]/ig;str = str.replace(reg,(match,number,word)=> word.repeat(number));while(reg.test(str)){str = decode(str);};return str;}

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

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

限制条件:需要支持小数

示例:

formate(123004.123) //十二万三千零四点一二三
formate(123456789) // 一亿二千三百四十五万六千七百八十九
formate(100000000000000000000000) //一千万亿亿
formate(1100000003.001) // 十一亿零三点零零一

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

n = 12345678;
res = n.toLocaleString();

Appendix:

MDN

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

持续更新中 ...

js正则匹配小数点后2位_正则实践与详解相关推荐

  1. js正则匹配小数点后2位_JS正则匹配小数点后两位

    坑爹的测试,非要搞限制输入到小数点两位. 第一种方法:parseFloat() 函数可解析一个字符串,并返回一个浮点数.该函数指定字符串中的首个字符是否是数字.如果是,则对字符串进行解析,直到到达数字 ...

  2. js正则匹配小数点后2位_js验证是正数且保留2位有效小数点的正则表达式

    展开全部 ^ js验证是正数且保留2位有效小数点的正则表达式是:123var reg = /^\+?(\d*\.\d{2})$/;var str = ".23";reg.test( ...

  3. jquery 验证小数点后几位_(亲测可用)input只能输入数字或小数点后几位

    webapp是基于html5网页版的app,经常会结合app成为混合模式 hybrid app,也就是 app小应用打开 访问的其实是网页,这种方式非常不错,解决了app更新的难题, 所以这个时候要求 ...

  4. 保留小数点后三位_三年后想买车?Excel理财小助手pmt函数帮你算

    三年后想买一辆10万元的小车,现在开始每月需要存多少钱? 三年就是36期,那每个月存多少钱是否就是用100000/36=2777.78(保留小数点后两位)呢?这是没有考虑到利率的情况,我们应该用复利计 ...

  5. js中获取小数点后两位小数

    在 JavaScript 中,可以使用 toFixed() 方法来获取小数点后的指定位数. 例如,如果要获取一个数字的小数点后两位小数,可以这样写: var num = 3.14159265; var ...

  6. React(五):js如何保留小数点后两位

    其实网上已经有很多成熟的保留小数点后两位的方法了,我可能写的还没他们好,所以我就稍微整下排版,好让你们看起来很舒服吧. 一.四舍五入 1.toFixed()方法 需注意,保留两位小数,将数值类型的数据 ...

  7. c++精确到小数点后两位_高考试卷的小数点是怎么算入总分的?

    7月7日,全国1071万高考考生将走进高考考场,也就是说,从7月7日开始,全国高考阅卷工作就开始了. 全国目前有三套全国试卷,分不同区域供27个省市的考生使用,有4个地区是自主命题.关于高考试卷,全国 ...

  8. js和Java分别正则匹配小数点后多余的0

    var dd = "2.0010万抵10.00万";var aa = dd.match(/\d+\.\d+/g);for ( var index in aa) {dd = dd.r ...

  9. c++输出的值精确到小数点后5位_七年级上册第一章有理数专讲专练(适合暑期预习后巩固)...

    供同学们复习使用. 专题一 有理数的概念 一.典题剖析 例1 <九章算术>中注有"今两算得失相反,要令正负以名之",意思是:今有两数若其意义相反,则分别叫做正数与负数, ...

最新文章

  1. 基于用户画像 《列变行》 特征打标显示
  2. 我的中年危机来得很自然
  3. 前端学习(974):视频插件zy.media.js的使用
  4. 写写最近吧,关于读研、找工作
  5. 的udp的接收端如何看速率_计算机网络 TCP与UDP
  6. MyBatsi-Mapper映射文件
  7. C++ template —— 模板中的名称(三)
  8. zookeeper中ExpiryQueue详解
  9. 用c#算成绩的总和_用c#编写输出成绩的总分和平均分
  10. 剑指offer(数值的整数次方)
  11. 第十二章 Android第三方库源码
  12. Android网速实时显示
  13. Word 从任意页开始设置页码
  14. ECMAScript标准简介
  15. 赤城新千禧计算机学校,今天,千禧宝宝如约而至
  16. MySQL(八):InnoDB 日志缓冲区(Log Buffer)
  17. 脉冲响应与频率响应的关系
  18. XML中配置网易云歌手详情滑动效果
  19. 程序员之间的鄙视链-2022.10.04
  20. EXT JS 4.3 在线学习

热门文章

  1. 我在优酷 OTT 端做自动化制图
  2. OPPO 回应“不务正业”生产口罩;旧款 iPhone 降速被罚 2500 万欧元;Angular 9.0.0 发布| 极客头条...
  3. 科大讯飞交通超脑荣获 2019 年大数据应用最佳实践案例 TOP10
  4. 如果没有云栖大会,中国云计算将要落后多少年?
  5. 微软将取缔 8 亿 Windows 10 用户的密码!
  6. 社交界的 Linux,为何败给了 Facebook、Twitter?
  7. @程序员,你真的会用 Unix 命令?
  8. Google 被祭天了!
  9. B站在美上市 A站却为融资心塞
  10. 大数据“杀熟不杀生”;微信朋友圈广告没完;美团打车撒币上海 | 一周业界事