js正则表达式之人民币匹配
程序员文章站
2024-01-04 16:07:52
人民币格式匹配 小写格式:¥ 符号 和 整数值 与小数3部分组成。 (0)代码与运行结果 (1)¥ 符号匹配 金额是由 ¥ 作为起始符的 匹配规则为: ^¥ (2)整数匹配 1:金额可为负的 2:金额数多的时候会存在千分符(,)如:¥ 122,000,112.00 匹配规则为:(-?[0-9,]+) ......
人民币格式匹配
小写格式:¥ 符号 和 整数值 与小数3部分组成。
(0)代码与运行结果
{ // 匹配人民币 let [reg, info, rmb, result] = [ /^(¥)(-?[0-9,]+)(\.[0-9]+)?/, ['金额','符号', '整数部分', '小数分部'], ['¥10.01', '¥10', '¥1,111.01', '¥1,000,12', '¥0.1', '¥10.00'] ]; rmb.foreach((value) => { console.log('---------------------------------------------------------------------------------'); for (let i = 0, result = reg.exec(value); i < result.length; i++) { console.log(`${info[i]} = ${result[i]}`); } }); }
(1)¥ 符号匹配
金额是由 ¥ 作为起始符的
匹配规则为: ^¥
(2)整数匹配
1:金额可为负的
2:金额数多的时候会存在千分符(,)如:¥ 122,000,112.00
匹配规则为:(-?[0-9,]+)
-? : 因为金额可能会存在负数也可能不存在,所以匹配0次或1次
[0-9,]+ : 前部分[0-9,]表示匹配其中任意一个字符,后面跟个+符号表示前面那组模式的数据至少会出现1次甚至更多次。
(3)小数部分匹配
1:小数部分数据是由点(.),后接数值组成。
匹配规则为:(\.[0-9]+)?
(\.[0-9]+)? :前部分(\.[0-9]+) 为小数 后面跟个?问号表示有可能存在小数部分,有可能没有。
(4)组合匹配规则
^(¥)(-?[0-9,]+)(\.[0-9]+)?
我的百度经验地址:https://jingyan.baidu.com/article/d3b74d64367dd61f77e60908.html