目前,我正在尝试创建一个正则表达式来验证用户输入字段,该字段要求输入至少包含以下各项之一:
- 一个大写字符
- 一个数字
- 以下特殊字符之一:
& @ ! # +
我试图创建一个正则表达式来正确验证输入:
/^([a-zA-Z+]+[0-9+]+[&@!#+]+)$/i.test(userpass);
但是,输入未正确验证。我该怎么做呢?
目前,我正在尝试创建一个正则表达式来验证用户输入字段,该字段要求输入至少包含以下各项之一:
& @ ! # +
我试图创建一个正则表达式来正确验证输入:
/^([a-zA-Z+]+[0-9+]+[&@!#+]+)$/i.test(userpass);
但是,输入未正确验证。我该怎么做呢?
您可以通过前瞻来简化正则表达式
^(?=.*[&@!#+])(?=.*[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)
尝试这个:
/[a-z]/i.test(userpass) && /[0-9]/.test(userpass) && /[&@!#+]/.test(userpass)