1.Java驗證用戶名的正則表達式
- @Test
- public void formalRegex() {
- String str = "123+123";
-
- Pattern pattern = Pattern.compile("[0-9a-zA-Z\u4E00-\u9FA5]+");
- Matcher matcher = pattern.matcher(str);
-
- if (!matcher.matches() ) {
- System.out.println("不滿足條件");
- } else {
- System.out.println("滿足正則式");
- }
- }
這是一般的用戶名驗證,這種驗證是要求用戶名不能有空格的
今天遇到了比較麻煩的問題,用戶名允許有空格......
在允許有空格的情況下要注意把"\n"等特殊的字符給過濾掉,於是采用下面的代碼
- @Test
- public void spaceRegex() {
- String str = "123\n 123";
-
- Pattern pattern = Pattern.compile("[0-9a-zA-Z\u4E00-\u9FA5\\s]+");
- Matcher matcher = pattern.matcher(str);
-
- Pattern special = Pattern.compile("\\s*|\t|\r|\n");
- Matcher specialMachter = special.matcher(str);
-
- if (!matcher.matches() || !specialMachter.matches()) {
- System.out.println("不滿足條件");
- } else {
- System.out.println("滿足正則式");
- }
- }
使用兩遍正則驗證,換行制表等特殊字符就被過濾掉了