js正则表达式之人民币匹配

 人民币格式匹配

小写格式:¥ 符号 整数值 与小数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

猜你喜欢

转载自www.cnblogs.com/whnba/p/10173195.html