删除美元匹配正则表达式

remove dollar match regex

本文关键字:正则表达式 美元 删除      更新时间:2023-09-26

我一直在使用这个正则表达式来验证美元金额输入。

parsley-regexp="^'$?[0-9][0-9',]*('.'d{1,2})?$|^'$?['.](['d]['d]?)$"

我不再允许$符号,只允许有效的数量。我需要做什么更改?

简单删除'$?(一个可选的转义美元符号-您需要转义它,因为$是一个保留的正则表达式字符):

// These are regex characters - keep them    v                    v
parsley-regexp="^'$?[0-9][0-9',]*('.'d{1,2})?$|^'$?['.](['d]['d]?)$"
// Remove these  ^^^                            ^^^

要从表达式中删除$ validation,使用以下命令:

parsley-regexp="[0-9][0-9',]*('.'d{1,2})?$|['.](['d]['d]?)$"

但是,您可能希望将表达式修改为只接受有效的货币输入。例如:

parsley-regexp="^'$?(('d{1,3}(','d{3})*)|('d+))('.'d{1,2})?$";

阳性结果:$1,234,456.00 | $1.5 | $1 00

阴性结果:$1,23 | $1;24

这是它的工作原理

^'$?                 - begins with one $ symbol
(('d{1,3}(','d{3})*) - has 1-3 digits, followed by 1 or more occurrences of 'comma and 3 digits'
|('d+))              - Or look for 1 or more digits
('.'d{1,2})?         - one or more occurrences of . followed by 1-2 digits

要去掉$符号,只需删除^'$?:

parsley-regexp="(('d{1,3}(','d{3})*)|('d+))('.'d{1,2})?$";