2013-07-18 34 views
0

需要對允許最多7位數字的格式進行正則表達式,並且每隔三位數字後用逗號分隔。用於驗證整數的正則表達式

有效值:

7 
77 
555 
1,234 
12,345 
444,888 
4,669,988 

目前我使用([0-9]{1}(,?[0-9]{3}){1,2}從而未能在第一三種方案。

+1

你必須使用正則表達式呢? DecimalFormat將是一個更直接的選擇。 – Kayaman

+0

解析數字並確保它小於10^8。 – assylias

回答

2

使用這一個:

[0-9]{1,3}(,[0-9]{3}){0,2} 

爲了驗證從字符串一個整數(你必須刪除):

try { 
    Integer.parseInt(str.replaceAll(",",""); 
    //valid integer 
} catch (Exception e) { 
    //not valid integer 
} 
+0

它也接受「111,123,446」和「11,123,446」。但限制爲7. – Kittu

+0

我需要用逗號進行驗證來檢查正確的逗號位置並將字符長度限制爲最大長度爲7. – Kittu

0
\d{1,3}(,\d{3}){0,2} 

試試這個正則表達式用數字驗證沿着長度檢查。

public boolean isNumValid(String num) throws ParseException { 
    if (!(NumberFormat.getInstance().parse(num).intValue() > 9999999)) { 
     if (num.matches("\\d{1,3}(,\\d{3}){0,2}")) { 
      return true; 
     } 
    } 
    return false; 
} 
2

嘗試這個表達式

"\\d{1,3}|\\d{1,3},\\d{3}|\\d{1,2},\\d{3},\\d{3}" 
+0

Thanx ...這個作品 – Kittu