0

目前,我正在尝试创建一个正则表达式来验证用户输入字段,该字段要求输入至少包含以下各项之一:

  • 一个大写字符
  • 一个数字
  • 以下特殊字符之一:& @ ! # +

我试图创建一个正则表达式来正确验证输入:

/^([a-zA-Z+]+[0-9+]+[&@!#+]+)$/i.test(userpass);

但是,输入未正确验证。我该怎么做呢?

4

2 回答 2

1

您可以通过前瞻来简化正则表达式

 ^(?=.*[&@!#+])(?=.*[A-Z])(?=.*\d).+$
  ------------- --------- -------
      |        |         |->match only if there's a digit ahead
      |        |->match only if there's a uppercase alphabet ahead
      |->match only if there's any 1 of [&@!#+]

[A-Z]将匹配单个大写字母

\d将匹配单个数字


或使用搜索

if(input.search(/\d/)!=-1 && input.search(/[&@!#+]/)!=-1) && input.search(/[A-Z]/)!=-1)
于 2013-07-02T06:22:29.647 回答
1

尝试这个:

/[a-z]/i.test(userpass) && /[0-9]/.test(userpass) && /[&@!#+]/.test(userpass)
于 2013-07-02T06:17:49.497 回答