簡體   English   中英

android中用於不帶空格的密碼的正則表達式

[英]Regular Expression in android for password without spaces

我在android中有一個EditText字段。 密碼至少應包含4個字符,最多20個字符,開頭或中間不能有空格。 示例blankspaceRaghu和RaghublankspaceRaghu不應被允許。

Pass= password.getText().toString();    

Pattern p= Pattern.compile("[^\\S]+[a-z,A-Z]+");

Matcher m = p.matcher(Pass);
Pass= mEditTextPassword.getText().toString();
Pattern p = Pattern.compile("^[A-Za-z0-9]{4,20}$"); 
Matcher m = p.matcher(Pass);

試試這個模式:

"\\A\\w{4,20}\\z"

\\\\A代表“輸入開始”。

\\\\w是任何字母數字(az,AZ,0-9)字符。 如果您不允許數字,請用[a-zA-Z]替換

{4,20}表示連續4到20次之間的先前事物。

\\\\z是字符串的結尾。 您沒有提到是否在密碼字符串后留空格。 如果要允許此操作,請在\\\\z之前插入\\\\s* (不包含任何空格)。

有關正則表達式語法的更多信息,請參見java.util.regex.Pattern的文檔。

我認為您想與\\\\A\\\\S{4,20}\\\\Z的RegEx匹配。 那是任何非空格字符,長度在4到20之間,與整個字符串匹配。

已更新-結尾處允許有空格。

Pass= password.getText().toString();    
Pattern p= Pattern.compile("((?!\\s)\\A)(\\s|(?<!\\s)\\S){4,20}\\Z");
Matcher m = p.matcher(Pass);

這個匹配

  • 匹配字符串的開頭,只要后面沒有空格
  • 匹配4到20次出現的空格或非空格,前提是該空格沒有前綴
  • 匹配字符串結尾

您可以嘗試否定匹配-這樣,您就不必大驚小怪的字符類了。

將密碼與/\\s/匹配。 如果匹配,則其中有空格,應將其拒絕。 如果沒有,您可以自由走。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM