js中正则匹配一些特殊的数学类型,小数,Number.isInteger,提取小数部分

2 篇文章 0 订阅

正则匹配一些特殊的数学类型

一、匹配小数

^\d+\.\d+$
解释:
	1. ^:以**开头 
	2. ^\d 以数字开头
	3. ^\d+ 以数字开头且至少包含一个  >= 1
	4. ^\d+\. 随后匹配一个小数点,小数点必须加上 '\'转义符,因为单独的 . 在正则里表示任意字符
	5. ^\d+\.\d 随后必须跟上数字
	6. ^\d+\.\d+ 跟上的数字个数必须  >= 1
	7. ^\d+\.\d$且只能以数字结尾

测试该正则

二、匹配特殊的整数

此处的特殊是指 在js中 Number.isInteger 会将小数点后面全为0的数字也判定为整数

实现Number.isInteger 的正则方法

^\d+\.?0*?$
解释:
	1. ^ 以**开头 
	2. ^\d 以数字开头
	3. ^\d+ 以数字开头且至少包含一个  >= 1
	4. ^\d+\. 随后匹配一个小数点,小数点必须加上 '\'转义符,因为单独的 . 在正则里表示任意字符
	5. ^\d+\.? 多出来的?表示匹配 . 有 0 或 1 个
	6. ^\d+\.?0 随后只能跟数字 0 
	7. ^\d+\.?0* 数字 0 的数量为 0 到多个 
	8. ^\d+\.?0*? 可以包含 `数字 0为 0 到多个` 的情况 为 0 次或是 1 次
	9. ^\d+\.?0*?$ 以零结尾

三、提取小数点后面的数字

(?<=^\d+\.)(\d+$)

此处用到了正向后行断言,即先行断言从左往右看,后行断言从右往左看。正向后行断言:(?<=表达式)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值