为了账号安全,请及时绑定邮箱和手机立即绑定

使用正则表达式使用 Decimal 验证货币

使用正则表达式使用 Decimal 验证货币

至尊宝的传说 2022-10-20 16:55:52
使用正则表达式使用 Decimal 验证货币大家好,我正在尝试在我的一个场景中使用正则表达式。所以我以字符串格式获取货币我必须检查以下情况长度可以在 1-6 之间货币可能包含也可能不包含小数。十进制只允许一次。123.45 - 有效 1234.. - 无效 12.3 - 有效 123456 - 有效 123456.7 - 无效我尝试了正则表达式 ^[0-9.]{1,6}$但它不验证第三种情况(小数只允许一次)。请帮助我输入您的信息。
查看完整描述

1 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

你可以使用这个正则表达式,


^(?=[\d.]{1,6}$)\d+\.?\d+$

在这里,这种(?=[\d.]{1,6}$)积极的前瞻性确保文本的总长度为 1 到 6 个字符,并\d+\.?\d+确保数字格式正确,^并且$是开始和结束锚点,以确保完整的字符串匹配而不是部分匹配。


正则表达式演示

Java代码,


List<String> list = Arrays.asList("123.45","1234..","12.3","123456","123456.7");


list.forEach(x -> {

    System.out.println(x + " --> " + (x.matches("^(?=[\\d.]{1,6}$)\\d+\\.?\\d+$")?"Valid":"Invalid"));

});

输出,


123.45 --> Valid

1234.. --> Invalid

12.3 --> Valid

123456 --> Valid

123456.7 --> Invalid


查看完整回答
反对 回复 2022-10-20
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信