86、美团算法题---匹配字符串中的所有数字

 匹配字符串中的所有数字,包括科学计数法、小数、分数和负数。

const str = '这是一篇文章:加快递费3.22X10^5,就开始的经费3673降低
开jvjsldfjXDJKFLD发洛索洛芬2/3,是杜绝浪费0.12345,晋升的了客服-2344'

// ['3.22X10^5',3673,'2/3',0.12345,-2344]

分析:

对于数字,包含正数和负数 ;

-、/、X、^、. 后必须有数字;

/、X、^、. 前必须有数字;

实现:

const str = '这是一篇文章:加快递费3.22X10^5,就开始的经费3673降低开jvjsldfjXDJKFLD发洛索洛芬2/3,是杜绝浪费0.12345,晋升的了客服-2344'

let test = /-?((\d+([/]?|\.?\d+X?\d+\^|\.?)\d+)|\d+)/g

console.log(str.match(test))
//匹配结果:['3.22X10^5', '3673', '2/3', '0.12345', '-2344']

// -? :控制负号 
// \d+:负号后1或多个数字
// [/]?:0或1个除号/
// \.?\d+X?\d+\^:0或1个小数点 + 数字 + 0或1个X + 数字 +^
// \.? : 0或1个小数点
//(a|b): 或。满足一个即可

// 注意:匹配除号时,需放到[]中,即[/]
// 通过/-?((一堆)|\d+): 我们考虑了只有一位数字的情况。

注意:匹配除号时,需放到[]中,即[/]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值