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

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

大家好,我正在尝试在我的一个场景中使用正则表达式。所以我以字符串格式获取货币我必须检查以下情况

  • 长度可以在 1-6 之间

  • 货币可能包含也可能不包含小数。

  • 十进制只允许一次。

123.45 - 有效 1234.. - 无效 12.3 - 有效 123456 - 有效 123456.7 - 无效

我尝试了正则表达式 ^[0-9.]{1,6}$

但它不验证第三种情况(小数只允许一次)。请帮助我输入您的信息。


至尊宝的传说
浏览 138回答 1
1回答

富国沪深

你可以使用这个正则表达式,^(?=[\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 -> {&nbsp; &nbsp; System.out.println(x + " --> " + (x.matches("^(?=[\\d.]{1,6}$)\\d+\\.?\\d+$")?"Valid":"Invalid"));});输出,123.45 --> Valid1234.. --> Invalid12.3 --> Valid123456 --> Valid123456.7 --> Invalid
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java