高分求金额正则表达式,在线等待

wygsea 2006-03-08 11:04:29
金额有两种输入方法:
1.123456789
2.123,456,789
如何写正则表达式,以验证输入的数据是上面两种方法之一
...全文
226 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cleansunshing 2006-03-08
  • 打赏
  • 举报
回复
Pattern pattern=Pattern.compile("\\d{1,3}(,\\d{3})*(.\\d+)?");
cleansunshing 2006-03-08
  • 打赏
  • 举报
回复
第二种如下:
\\d{1,3}(,\\d{3})*(.\\d+)?
treeroot 2006-03-08
  • 打赏
  • 举报
回复
第二种有点复杂
treeroot 2006-03-08
  • 打赏
  • 举报
回复
1.123456789
2.123,456,789

(\d*[.]?\d*)
wizardblue 2006-03-08
  • 打赏
  • 举报
回复
楼主麻烦你自己跑一下面这个吧,我也不说什么了
public class DigitDemo {
public static void main(String[] args) {

String[] ts = new String[]{"123456789","1,234,567,8900","123,456,789"};
for(int i=0;i<ts.length ;i++){
System.out.println("check "+ts[i]+" result:");
System.out.println("check1()'s result:"+check1(ts[i]));
System.out.println("check2()'s result:"+check2(ts[i]));
System.out.println("check3()'s result:"+check3(ts[i]));
System.out.println();
}
}

public static boolean check1(String s){
return s.matches("\\d{1,3}(,\\d{3})*(.\\d+)?");
}
public static boolean check2(String s){
return s.matches ("\\d{1,3}(,\\d{3})*(\\.\\d+)?");
}
public static boolean check3(String s){
return s.matches( "\\d{1,3}((,\\d{3})*|\\d*)");
}
}
cleansunshing 2006-03-08
  • 打赏
  • 举报
回复
晕,改一下:
Pattern pattern=Pattern.compile("\\d{1,3}(,\\d{3})*(\\.\\d+)?");

62,625

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧