当前位置: 首页 > 知识库问答 >
问题:

Java使用逗号或点号和两个十进制值验证价格[关闭]

诸葛彦
2023-03-14

验证必须用点或逗号和最大两个十进制值表示价格值的字符串的最佳方法和解决方案是什么?

regexpjava.text.decimalformat还是其他东西?

接受以下值:

1
11

1,05
2,5

1.05
2.5

我还尝试了这个RegExp/^(\\d+(?:[\\.\\,]\\d{2})?)$/,但它不起作用。

共有1个答案

黎苑博
2023-03-14

使用此正则表达式

final String regExp = "[0-9]+([,.][0-9]{1,2})?";

它匹配1个或多个数字,后跟可选:逗号或句号,后跟1个或2个数字。

在Java中,您可以使用:

final Pattern pattern = Pattern.compile(regExp);

// This can be repeated in a loop with different inputs:
Matcher matcher = pattern.matcher(input); 
matcher.matches();
 类似资料:
  • 在使用“number”类型和值“1,5”的输入发布表单后,浏览器(Chrome 43.0.2357.130,FF 38.0.5)发送带有点作为小数分隔符的数字,但输入具有属性lang=“cs”(在捷克共和国,我们使用十进制逗号),因此对于ASP。NETMVC的格式不正确。 如何设置浏览器(表单/输入)以发送用户真正填写的内容(在我的示例中为“1,5”)? 从浏览器发送的表单数据:

  • 问题内容: 我用来处理AngularJS中的十进制输入。 如果我使用该选项,它几乎可以按预期工作。对于两个小数,输入如“ 100.333”将转换为“ 100.33”。 在我的区域中,逗号用作小数点分隔符,但我网站上的输入应使用点作为小数点分隔符-就像该插件一样。没关系。但是,我希望将“ 100,33”之类的输入转换为“ 100.33”。 我怎样才能做到这一点? 问题答案: 恐怕我不熟悉:( 但是,

  • 例如,我希望使用函数将转换为: 空格的解决方案是,所以我希望比较这方面的解决方案也能帮助解释一些正则表达式的基本原理。

  • 问题内容: 我正在制作一个Android Java程序,该程序从用户处获取双倍值。如果我在计算机上运行该程序,则由于我的计算机的语言环境为EN_UK,因此运行良好。但是,当我在具有FI_FI语言环境的手机上运行它时,它将无法工作。我知道原因:在英国,人们使用点作为小数点分隔符,但在芬兰,小数点分隔符是逗号。 当我使用逗号时,它说。 如何使它们与逗号和点都兼容? 问题答案: 使用DecimalFor

  • 现在,我正在用Spring MVC开发一个web应用程序。 样品值可以是“0.05”、“1.00”、“12.55”等。 因此,如果有任何办法来解决这个问题,请点亮我。谢了。

  • 问题内容: 我有2张桌子如下 笔记表 职位表 我想查询我的Notes表并将’forDepts’列与Positions表中的值相关联。 输出应为: 我知道数据库应该规范化,但是我不能更改此项目的数据库结构。 这将用于使用以下代码导出excel文件。 此代码仅输出“ forDepts”的第一个值 考试:执行人员(而不是执行人员,公司行政人员,Art) 可以通过CONCAT或FIND_IN_SET完成吗