2015-09-06 27 views
0

我想要一個用於客戶端密碼Html5驗證的正則表達式,不知道正則表達式的工作方式;我在這個正則表達式((?=.*[^a-zA-Z])(?!\s).{4,})中找到了最好的答案,但它需要一個數字。我的要求是:正則表達式超過4個字符,包含除空格和新行之外的所有內容

任何輸入超過4個字母數字或特殊字符(空格和換行除外)。

請幫忙!

+0

你可以使用下面的正則表達式:'^ [^ \ s] {4,} $' –

+0

感謝它的工作! – Abhishek

+0

@Abhisek歡迎您:) –

回答

1

您可以使用此^\S{5,}$。這意味着:輸入的

  1. 匹配開始
  2. 匹配的非空白字符 - >

    2.1越多越好,但至少5

  3. 輸入
  4. 匹配端的

查看片段:

var passwords = [ 
 
    'aa', 
 
    'abcde', 
 
    'ab cd', 
 
    'abcdefg', 
 
    'a1234', 
 
    'a1234 ' 
 
]; 
 

 
var rePassword = /^\S{5,}$/ 
 

 
for(var i = 0; i < passwords.length; i++) { 
 
    console.log(passwords[i], rePassword.test(passwords[i])); 
 
}

0

我會使用類似^(?=.*\d)\S{5,}$,其中

(?=.*\d)是一個積極的前瞻主張密碼至少包含1個數字

\S{5,}比賽至少5個非空白字符。

Demo on regex101.com

+0

歐普說「超過4」,所以我認爲他真的想要{5,} - 不是? – ash

+0

@ash - 正確的,固定的 –

+0

爲什麼要添加一條規定密碼至少包含1位數的規則?這不是必需的。事實上,考慮OP的要求是錯誤的。 – Amit

0

如果你想包括您可以使用具有至少一個數字字符的要求:(至少需要5個非空白字符,包括至少一位)

^([^\s]{4,}[0-9][^\s]*)|([^\s]{3,}[0-9][^\s]+)|([^\s]{2,}[0-9][^\s]{2,})|([^\s]+[0-9][^\s]{3,})|([^\s]*[0-9][^\s]{4,})$ 

嗯,我知道在正則表達式中這樣做有點過分。

相關問題