一般在寫用戶註冊模塊的時候都在對註冊的用戶名進行判斷,查看一下有沒有.!@#$%^&*()等這樣的特殊字符,註冊信息裏一般將這些字符視爲非法字符不允許註冊。怎麼進行判斷呢,這裏就用到了正則表達式了。
先來解釋一下下面幾個正則表達式:
String chinese = "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$"; /**這個正則表達式用來判斷是否爲中文**/
//用來用戶註冊。匹配由數字、26個英文字母或者下劃線組成的字符串
String username = "^\\w+$"; /**此正則表達式判斷單詞字符是否爲:[a-zA-Z_0-9]**/
String all = "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D\\w]{2,10}$"; /**此正則表達式將上面二者結合起來進行判斷,中文、大小寫字母和數字,{2,10}字符的長度爲2-10**/
下面是一個完整的例子程序,經測試運行通過:
import java.util.regex.Pattern;
public class ReplaceAllTest {
public static void main(String[] args){
String chinese = "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+{1}quot;; /**這個正則表達式用來判斷是否爲中文**/
String username = "^\\w+{1}quot;; /**此正則表達式判斷單詞字符是否爲:[a-zA-Z_0-9]**/
/**此正則表達式將上面二者結合起來進行判斷,中文、大小寫字母和數字**/
String all = "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D\\w]{2,10}{1}quot;;//{2,10}表示字符的長度是2-10
Pattern pattern = Pattern.compile(all);
boolean tf = pattern.matcher("12345").matches();
// boolean tf = Pattern.matches(all, "劉塏l12廳要右見到");
System.out.println(tf);
// \\u4E00-\\u9FA5\\uF900-\\uFA2D是指漢字的Unicode編碼範圍
// \w是指單詞字符:[a-zA-Z_0-9]
}
}