[英]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);
這個匹配
您可以嘗試否定匹配-這樣,您就不必大驚小怪的字符類了。
將密碼與/\\s/
匹配。 如果匹配,則其中有空格,應將其拒絕。 如果沒有,您可以自由走。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.