我的要求是不允许用户在我的Java应用程序中输入负数。 我需要检查输入字段是完全为空还是只有正整数。
我拥有的是
/^[\s\d]*$/
答案 0 :(得分:1)
这允许数字(整数)或根本没有数字(空)/^\d*$/
没有任何符号,没有点。
你的正则表达式允许数字和空格交错。
答案 1 :(得分:0)
试试这个:
String str = "12 ";
boolean matches = str.matches("[\\p{Digit}\\s]+");
System.out.println("matches = " + matches);
结果是:
matches = true
答案 2 :(得分:0)
你可以试试这个:
String inField = "1245";
Pattern p = Pattern.compile("^(\\d*|\\s*)$");
boolean isCorrect = p.matcher(inField).matches();
System.out.println(isCorrect);