最近用到了java正则验证数字需求,上网查了一些,有的对有的不完善,自己根据示例,进行了修改,自己将不断地补充修改这里的方法,希望大家一起探讨。
public static boolean isNumber(String number) { boolean isNumber = false; int index = number.indexOf(","); if (index >= 0) { //有逗号等分隔符的数字 isNumber = number .matches("[+-]?[1-9]+[0-9]*(,[0-9]{3})+(\\.[0-9]+)?"); } else { isNumber = number.matches("[+-]?[1-9]+[0-9]*(\\.[0-9]+)?"); } return isNumber; }
1、整数
"^([1-9]\d*)|(0)$"
2、2011-10-10更新
//之前自己的: "[+-]?(([1-9]+[0-9]*(\\.[0-9]+)?)|(0)|(0\\.[0-9]+))" //优化后的: "[+-]?((0|([1-9]+[0-9]*))(\\.[0-9]+)?)"