正则表达式超过4个字符,包含除空格和新行之外的所有字符

时间:2015-09-06 06:49:17

标签: regex

我想要一个正则表达式用于客户端密码Html5验证,不知道正则表达式是如何工作的;我在这个正则表达式.body { display: block; float: left; background-image: url("bgdef.jpg"); background-repeat: no-repeat; position: static; width: 100%; height: auto; margin: 0; } .menu { width: 250px; padding: 0; margin: 100px 0px 33% 75%; list-style-type: none; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-user-drag: none; } .menu a:link, a:visited, a:hover, a:active { text-decoration: none; bottom: auto; padding-bottom: auto; text-shadow: none; } .menu li { background-color: white; margin: 10px; padding: 3px 0 3px 10%; border-radius: 10PX 0 0 10px; font-size: 20px; } .menu li:hover { background-color: green; margin-right: 18px; margin-left: 1px; } 中找到了最佳答案,但它需要一个数字。我的要求是:

  

任何输入超过4个字母数字或除空格和换行符之外的特殊字符。

请帮忙!

3 个答案:

答案 0 :(得分: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]));
    }
    &#13;
    &#13;
    &#13;

答案 1 :(得分:0)

我会使用类似^(?=.*\d)\S{5,}$的内容,其中

(?=.*\d)是一个积极的预测,断言密码至少包含1位

\S{5,}匹配至少5个非空白字符。

Demo on regex101.com

答案 2 :(得分:0)

如果您想要包含至少有一个数字字符的要求,可以使用:

    ^([^\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,})$

(至少需要5个非空格字符,包括至少一个数字。)

嗯,我知道,在正则表达式中执行此操作有点夸张。