我尝试使用Redux-Forms在React / Redux构建中进行密码验证。一切都很好,除非我似乎无法防止至少有一个大写字母的密码。这是我的正则表达式:
^(?=[A-Z])(?=.*?[0-9])(?=.*?[^\w\s]).+$
它在正则表达式验证器和我的表格验证器中工作正常,除了大写字母外,它的工作原理。
const password = value =>
value && !/^(?=[A-Z])(?=.*?[0-9])(?=.*?[^\w\s]).+$/i.test(value)
? 'Passwords must at least 8 characters, include one capital letter, one number, and one special character:'
: undefined;
我们也在使用向导表格,但我没有看到任何可能会弄乱案件的内容。
有没有人有任何想法?
答案 0 :(得分:1)
由于末尾的/ i标志,您的正则表达式不区分大小写。
只需删除正则表达式末尾的/i
即可:
> /^(?=[A-Z])(?=.*?[0-9])(?=.*?[^\w\s]).+$/i.test('hello1*')
true
> /^(?=[A-Z])(?=.*?[0-9])(?=.*?[^\w\s]).+$/.test('hello1*')
false