24h購物| | PChome| 登入
2009-03-27 13:54:05| 人氣546| 回應0 | 上一篇 | 下一篇

年齡區間檢查-Java Reqular Expressions

推薦 0 收藏 0 轉貼0 訂閱站台

java world@tw的詳細介紹,
情境:想針對可不輸入年齡區間條件檢查,允許只輸入from或to欄位。
因為Reqular Expressions博大精深,恐怕不是一兩頁/夜說的完,
當然是遇到才試試自己要用的。
from field最小為0(所以是非負整數),
to field最小為1,而且必須大於from field-所以是正整數。
回傳message string原因是要在上層引用,
JOptionPane.showMessageDialog(this,errMsg, "INFORMATION", JOptionPane.INFORMATION_MESSAGE);
如果 errMsg==null 視為通過檢核。
因為java world網頁上提供的Reqular Expressions卡不住連續的 '00' 之類的字串,
所以要多作一些額外的檢查。
以下為程式碼:

//must be number
private static String REGEX_DIGIT="[0-9]+";
//NOT NEGATIVE INTEGER
private static String REGEX_NOT_NEGATIVE_INTEGER="^\d+$"; 
//POSITIVE INTEGER
private static String REGEX_POSITIVE_INTEGER="^[1-9]*[1-9][0-9]*$";

   
/** Check age fields is legal digit. */
private String check(String ageFrom,String ageTo){
    String errMsg=null;

    //digit check
    if(errMsg==null
       && ageFrom.trim().length()>0
       && ageFrom.trim().matches(CALSS_NAME.REGEX_DIGIT)==false)    
            errMsg="Please input the digital number in age from.";
    if(errMsg==null && ageTo.trim().length()>0 
       && ageTo.trim().matches(CALSS_NAME.REGEX_DIGIT)==false )       
            errMsg="Please input the digital number in age to.";
          //length than 1 and 0 begin
    if(errMsg==null && ageFrom.trim().length()>1
       && ageFrom.trim().substring(0,1).equals("0")) 
           errMsg="'0' begins! Please input the right number in age from.";
    if(errMsg==null && ageTo.trim().length()>1
       && ageTo.trim().substring(0,1).equals("0")) 
           errMsg="'0' begins! Please input the right number in age to.";
       
        //0 check
    if(errMsg==null && ageTo.trim().length()>0
       && Integer.parseInt(ageTo.trim())==0 ) 
           errMsg="Field age to must be greater than 0.";

    if(errMsg==null && ageFrom.trim().length()>0
     &&ageFrom.trim().matches(CALSS_NAME.REGEX_NOT_NEGATIVE_INTEGER)==false) 
            errMsg="Please input the right format number in age from.";
    if(errMsg==null && ageTo.trim().length()>0
        && ageTo.trim().matches( CALSS_NAME.REGEX_POSITIVE_INTEGER)==false )
        errMsg="Please input the right format number in age to.";
    if(  (ageFrom.trim().length()>0 && ageTo.trim().length()>0)  

&& Integer.parseInt(ageFrom)>=Integer.parseInt(ageTo) )
            errMsg="The age from field must be smaller than the age to field.";
        return errMsg;
}

trim()跟length()>0是為了避免空格(space)。

   

台長: softlive
人氣(546) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: java ee |
此分類下一篇:Ehcache+Spring範例測試
此分類上一篇:URL parameter encode

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文