【问题标题】:regex to strictly check alphanumeric and special character正则表达式严格检查字母数字和特殊字符
【发布时间】:2013-09-18 03:44:56
【问题描述】:

用特殊字符检查字母数字

var regex = /^[a-zA-Z0-9_$@.]{8,15}$/;
   return regex.test(pass);

但是,即使我通过以下组合,上面的正则表达式也会返回 true

asghlkyudet

78346709tr

jkdg7683786

但是,我想要它,它必须包含字母数字和特殊字符,否则在任何情况下它都必须返回 false。例如:

fg56_fg$

Sghdfi@90

【问题讨论】:

  • 正则表达式参数中有下划线。
  • 是的.. 我认为下划线是特殊字符
  • 我不明白你想要达到什么目的。也许还有更多您想要返回 false 的示例。
  • 只接受字母数字和特殊字符,这在正则表达式中提到,除了它应该返回false。我还提到了两个正确输入的例子和三个错误输入的例子

标签: javascript regex special-characters alphanumeric


【解决方案1】:

您可以将a-zA-Z0-9_ 替换为\w,并使用两个锚定前瞻 - 一个用于特殊,一个用于非特殊,最简单的表达方式是:

/^(?=.*[_$@.])(?=.*[^_$@.])[\w$@.]{8,15}$/

【讨论】:

    【解决方案2】:

    使用前瞻检查字符串是否包含至少一个字母数字字符和至少一个特殊字符:

    /^(?=.*[a-zA-Z0-9])(?=.*[_$@.])[a-zA-Z0-9_$@.]{8,15}$/
    

    顺便说一句,特殊字符集太小了。即使考虑 ASCII 字符集,这还不是所有的特殊字符。

    【讨论】:

      【解决方案3】:

      美元符号是正则表达式的保留字符。你需要逃避它。

      var regex = /^[a-zA-Z0-9_/$@.]{8,15}$/;
      

      【讨论】:

      • 抱歉,没用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多