一:关于数字:

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. iOS 11.3立春后发布,电量用得快的人千万别升级!
  2. 8种常见机器学习算法比较
  3. js代码收集(1)_隐藏div、table间隔样式设置
  4. LoadRunner解决“服务器正在运行中”方法
  5. 【Rollo的Python之路】Python 多进程 学习笔记 multiprocessing
  6. illegal text-relocation
  7. 如何删除旧的和未使用的Docker映像
  8. rs232接口_、 迪文串口屏TTL与主控板RS232电平信号转换方案
  9. 【精品收藏】世界上最有智慧的人是怎样理性思考的?查理·芒格的100个思维模型...
  10. Ubuntu 18.04截屏
  11. 上帝模式下的shellcode
  12. 使用R进行VENN_维恩图或韦恩图_的绘制_2020-11-08
  13. 一个老程序员的教诲(2)
  14. 转:亚熟男 我们该拿你怎么办?
  15. Lingo 语言程序设计基础
  16. 2016年下半年信息安全工程师上午选择题及解析
  17. 养生产品如何进行线上推广?产品线上推广的渠道有哪些?
  18. ffmpeg的api里av_free和av_freep的区别
  19. 智联招聘数据Hbase数据分析+可视化
  20. 交互设计实用指南系列11-减少记忆负担

热门文章

  1. 微信群有人发广告?用 Python 写自动化机器人消灭他!
  2. 疫情肆虐下,程序员用代码告诉你为什么千万不要出门!
  3. 十行代码实现十亿图片检索,我们把它开源了
  4. 全新语音 AI 芯片、两大 AI 开发者平台重磅推出,全方位解读科大讯飞全球 1024 开发者节!...
  5. 智能客服究竟该怎么玩?
  6. 年薪百万架构师首次分享 Java 程序员黄金 5 年进阶心得!
  7. 首批 5G 手机到位;来电显示暗藏黑色利益链;印度下架抖音国际版 | 极客头条...
  8. 开源作者痛斥京东重量级项目抄袭
  9. 阿里的程序员们如何解决复杂数据的查询优化问题?| 技术头条
  10. 996 都升不了职的程序员该如何拯救?