2013-10-24 53 views
2

我想驗證我的應用程序的密碼字段。我做了驗證來檢查字符串是否包含空格,但不接受像'#'之類的特殊字符。密碼驗證應該接受特殊字符,數字,字符但不是空格

我需要允許用戶輸入特殊字符,但不允許使用空格。
這是我的驗證碼。

Pattern pattern = Pattern.compile("\\s"); 
     Matcher matcher = pattern.matcher(oldPass); 
     Matcher matcher1 = pattern.matcher(newPass); 
     boolean found = matcher.find(); 
     boolean found1 = matcher1.find(); 
     if(found || found1) 
     { 
      DisplayError(Constants.PASSWORD_CANNOT_CONTAIN_SPACES); 
     } 

請給我任何提示或參考。

更新

if (newPass.indexOf(' ') != -1 || oldPass.indexOf(' ') != -1) { 
    DisplayError(Constants.PASSWORD_CANNOT_CONTAIN_SPACES); 
} 
+0

這個怎麼樣:「[\\ n \\ t \\ r \\ f \\ v]」 –

+0

請不要這樣做。沒有理由拒絕某人的密碼,因爲它有一個空間。 –

回答

4

我認爲這是太簡單了,使用正則表達式。

if (password.indexOf(' ') != -1) { 
    // display error 
} 
+0

不錯和簡單+1 – anubhava

+0

這不會匹配其他空白字符,如空格,如標籤等 –

+0

@ GOTO0很少有用戶在提供密碼時引入特殊字符(如新行,標籤等)的範圍。例如,HTML'

'中的''文本框。您按下您移至下一個表格元素的標籤。 –

相關問題