js正则匹配小数点后2位_正则实践与详解
一:关于数字:
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位_正则实践与详解相关推荐
- js正则匹配小数点后2位_JS正则匹配小数点后两位
坑爹的测试,非要搞限制输入到小数点两位. 第一种方法:parseFloat() 函数可解析一个字符串,并返回一个浮点数.该函数指定字符串中的首个字符是否是数字.如果是,则对字符串进行解析,直到到达数字 ...
- js正则匹配小数点后2位_js验证是正数且保留2位有效小数点的正则表达式
展开全部 ^ js验证是正数且保留2位有效小数点的正则表达式是:123var reg = /^\+?(\d*\.\d{2})$/;var str = ".23";reg.test( ...
- jquery 验证小数点后几位_(亲测可用)input只能输入数字或小数点后几位
webapp是基于html5网页版的app,经常会结合app成为混合模式 hybrid app,也就是 app小应用打开 访问的其实是网页,这种方式非常不错,解决了app更新的难题, 所以这个时候要求 ...
- 保留小数点后三位_三年后想买车?Excel理财小助手pmt函数帮你算
三年后想买一辆10万元的小车,现在开始每月需要存多少钱? 三年就是36期,那每个月存多少钱是否就是用100000/36=2777.78(保留小数点后两位)呢?这是没有考虑到利率的情况,我们应该用复利计 ...
- js中获取小数点后两位小数
在 JavaScript 中,可以使用 toFixed() 方法来获取小数点后的指定位数. 例如,如果要获取一个数字的小数点后两位小数,可以这样写: var num = 3.14159265; var ...
- React(五):js如何保留小数点后两位
其实网上已经有很多成熟的保留小数点后两位的方法了,我可能写的还没他们好,所以我就稍微整下排版,好让你们看起来很舒服吧. 一.四舍五入 1.toFixed()方法 需注意,保留两位小数,将数值类型的数据 ...
- c++精确到小数点后两位_高考试卷的小数点是怎么算入总分的?
7月7日,全国1071万高考考生将走进高考考场,也就是说,从7月7日开始,全国高考阅卷工作就开始了. 全国目前有三套全国试卷,分不同区域供27个省市的考生使用,有4个地区是自主命题.关于高考试卷,全国 ...
- js和Java分别正则匹配小数点后多余的0
var dd = "2.0010万抵10.00万";var aa = dd.match(/\d+\.\d+/g);for ( var index in aa) {dd = dd.r ...
- c++输出的值精确到小数点后5位_七年级上册第一章有理数专讲专练(适合暑期预习后巩固)...
供同学们复习使用. 专题一 有理数的概念 一.典题剖析 例1 <九章算术>中注有"今两算得失相反,要令正负以名之",意思是:今有两数若其意义相反,则分别叫做正数与负数, ...
最新文章
- 基于用户画像 《列变行》 特征打标显示
- 我的中年危机来得很自然
- 前端学习(974):视频插件zy.media.js的使用
- 写写最近吧,关于读研、找工作
- 的udp的接收端如何看速率_计算机网络 TCP与UDP
- MyBatsi-Mapper映射文件
- C++ template —— 模板中的名称(三)
- zookeeper中ExpiryQueue详解
- 用c#算成绩的总和_用c#编写输出成绩的总分和平均分
- 剑指offer(数值的整数次方)
- 第十二章 Android第三方库源码
- Android网速实时显示
- Word 从任意页开始设置页码
- ECMAScript标准简介
- 赤城新千禧计算机学校,今天,千禧宝宝如约而至
- MySQL(八):InnoDB 日志缓冲区(Log Buffer)
- 脉冲响应与频率响应的关系
- XML中配置网易云歌手详情滑动效果
- 程序员之间的鄙视链-2022.10.04
- EXT JS 4.3 在线学习
热门文章
- 我在优酷 OTT 端做自动化制图
- OPPO 回应“不务正业”生产口罩;旧款 iPhone 降速被罚 2500 万欧元;Angular 9.0.0 发布| 极客头条...
- 科大讯飞交通超脑荣获 2019 年大数据应用最佳实践案例 TOP10
- 如果没有云栖大会,中国云计算将要落后多少年?
- 微软将取缔 8 亿 Windows 10 用户的密码!
- 社交界的 Linux,为何败给了 Facebook、Twitter?
- @程序员,你真的会用 Unix 命令?
- Google 被祭天了!
- B站在美上市 A站却为融资心塞
- 大数据“杀熟不杀生”;微信朋友圈广告没完;美团打车撒币上海 | 一周业界事