Android常用正則工具類

2021-09-07 06:23:10 字數 4734 閱讀 9229

此類提供日常開發中常用的正則驗證函式,比如:郵箱、手機號、**號碼、身份證號碼、日期、數字、小數、url、ip位址等。使用pattern物件的matches方法進行整個字元匹配,呼叫該方法相當於:

pattern p = pattern.compile(regex);

matcher m = p.matcher(input);

return m.matches();

每個正則可能還有待優化的地方,您如有更好的方式實現某乙個功能的驗證,歡迎提出來大家一起討論。下面是工具類的完整**:

/**  

* 正則工具類

* 提供驗證郵箱、手機號、**號碼、身份證號碼、數字等方法

*/

public final class regexutils

/**

* 驗證身份證號碼

* @param idcard 居民身份證號碼15位或18位,最後一位可能是數字或字母

* @return 驗證成功返回true,驗證失敗返回false

*/

public static boolean checkidcard(string idcard) [a-za-z0-9]";

return pattern.matches(regex,idcard);

} /**

* 驗證手機號碼(支援國際格式,+86135***x...(中國內地),+00852137***x...(中國香港))

* @param mobile 移動、聯通、電信運營商的號碼段

*移動的號段:134(0-8)、135、136、137、138、139、147(預計用於td上網絡卡)

*、150、151、152、157(td專用)、158、159、187(未啟用)、188(td專用)

*聯通的號段:130、131、132、155、156(世界風專用)、185(未啟用)、186(3g)

*電信的號段:133、153、180(未啟用)、189

* @return 驗證成功返回true,驗證失敗返回false

*/

public static boolean checkmobile(string mobile) $";

return pattern.matches(regex,mobile);

} /**

* 驗證固定**號碼

* @param phone **號碼,格式:國家(地區)**** + 區號(城市**) + **號碼,如:+8602085588447

*國家(地區) ** :標識**號碼的國家(地區)的標準國家(地區)**。它包含從 0 到 9 的一位或多位數字,

* 數字之後是空格分隔的國家(地區)**。

*區號(城市**):這可能包含乙個或多個從 0 到 9 的數字,地區或城市**放在圓括號——

* 對不使用地區或城市**的國家(地區),則省略該元件。

***號碼:這包含從 0 到 9 的乙個或多個數字

* @return 驗證成功返回true,驗證失敗返回false

*/

public static boolean checkphone(string phone) \\-?)?\\d$";

return pattern.matches(regex, phone);

} /**

* 驗證整數(正整數和負整數)

* @param digit 一位或多位0-9之間的整數

* @return 驗證成功返回true,驗證失敗返回false

*/

public static boolean checkdigit(string digit)

/**

* 驗證整數和浮點數(正負整數和正負浮點數)

* @param decimals 一位或多位0-9之間的浮點數,如:1.23,233.30

* @return 驗證成功返回true,驗證失敗返回false

*/

public static boolean checkdecimals(string decimals)

/**

* 驗證空白字元

* @param blankspace 空白字元,包括:空格、\t、\n、\r、\f、\x0b

* @return 驗證成功返回true,驗證失敗返回false

*/

public static boolean checkblankspace(string blankspace)

/**

* 驗證中文

* @param chinese 中文字元

* @return 驗證成功返回true,驗證失敗返回false

*/

public static boolean checkchinese(string chinese)

/**

* 驗證日期(年月日)

* @param birthday 日期,格式:1992-09-03,或1992.09.03

* @return 驗證成功返回true,驗證失敗返回false

*/

public static boolean checkbirthday(string birthday) ([-./])\\d\\1\\d";

return pattern.matches(regex,birthday);

} /**

* 驗證url位址

* @param url 格式: 或

* @return 驗證成功返回true,驗證失敗返回false

*/

public static boolean checkurl(string url) \\.)?)?\\w+\\.\\w+(\\.[a-za-z]+)*(:\\d)?(/\\w*)*(\\??(.+=.*)?(&.+=.*)?)?";

return pattern.matches(regex, url);

} /**

* @return 驗證成功返回true,驗證失敗返回false

*/

public static boolean checkpostcode(string postcode) ";

return pattern.matches(regex, postcode);

} /**

* @param ipaddress ipv4標準位址

* @return 驗證成功返回true,驗證失敗返回false

*/

public static boolean checkipaddress(string ipaddress) )?\\.(0|([1-9](\\d)?))\\.(0|([1-9](\\d)?))\\.(0|([1-9](\\d)?))";

return pattern.matches(regex, ipaddress);

} }

* 正規表示式工具類測試  

*/

public class regexutilstest

/**

* 驗證身份證號碼

*/

@test

public void testcheckidcard()

/**

* 驗證手機號碼

*/

@test

public void testcheckmobile()

/**

* 驗證**號碼

*/

@test

public void testcheckphone()

/**

* 驗證整數(正整數和負整數)

*/

@test

public void testcheckdigit()

/**

* 驗證小數和整數(正負整數和正負小數)

*/

@test

public void testcheckdecimals()

/**

* 驗證空白字元

*/

@test

public void testcheckblankspace()

/**

* 匹配中文

*/

@test

public void testcheckchinese()

/**

* 驗證日期

*/

@test

public void testcheckbirthday()

/**

*/

@test

public void testcheckpostcode()

/**

* 驗證url位址

*/

@test

public void testcheckurl()

/**

* 驗證ip位址

*/

@test

public void testcheckipaddress()

}

Android常用正則工具類

android常用正則工具類 此類提供日常開發中常用的正則驗證函式,比如 郵箱 手機號 號碼 身份證號碼 日期 數字 小數 url ip位址等。使用pattern物件的matches方法進行整個字元匹配,呼叫該方法相當於 pattern p pattern.compile regex matcher...

Android正則驗證工具類

東西不多,但一般專案夠用了。public class regularutil 1 9 d 0 d 1 0 2 0 1 2 d 3 0 1 d 0 9 x 驗證郵箱 public static final string regex email a z0 9a z a z0 9a z a z0 9a z...

android常用工具類

import android.content.context import android.net.connectivitymanager import android.net.networkinfo import android.widget.toast 常用的工具類集合!public class...