gpt4 book ai didi

Java正则表达式检查字符串是否是有效的数字格式(逗号和小数点放置)

转载 作者:行者123 更新时间:2023-12-01 20:53:23 24 4
gpt4 key购买 nike

1000 - valid
1,000 - valid
1,000.00 - valid
1000.00 - valid
1000.00.00 - invalid
1,0.00 - invalid
1,000,00.00 - invalid
1,000,000.12 - valid

小数位数没有限制

我一直在尝试找到正确的正则表达式模式,但似乎找不到能够容纳所有验证的正则表达式模式。谁能帮忙

模式 ^[1-9]\d{0,2}(.\d{3})*(,\d+)?$ 对我来说不起作用,基于类似的线程 here

最佳答案

你应该尝试这个表达式:

^\d{1,3}|\d(([ ,]?\d{3})*([.,]\d{2}+)?$)

这个表达式涵盖了所提出的场景。

这里是完整的示例:

public class Decimal {

private static String REGEX = "^\\d{1,3}|\\d(([ ,]?\\d{3})*([.,]\\d{2}+)?$)";

public static void main(String[] args) {
String data[] = {"1000", "1,000", "1,000.00", "1000.00", "1000.00.00", "1,0.00", "1,000,00.00", "1,000,000.12"};

Pattern.compile(REGEX);

for (int i = 0; i < data.length; i++) {
if (data[i].matches(REGEX)) {
System.out.println(data[i] + " - valid");
} else {
System.out.println(data[i] + " - invalid");
}
}
}

}

输出:

  • 1000 - 有效
  • 1,000 - 有效
  • 1,000.00 - 有效
  • 1000.00 - 有效
  • 1000.00.00 - 无效
  • 1,0.00 - 无效
  • 1,000,00.00 - 无效
  • 1,000,000.12 - 有效

关于Java正则表达式检查字符串是否是有效的数字格式(逗号和小数点放置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42822629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com