正则表达式区分大小写不适用于Redux-Forms

时间:2018-05-07 22:50:09

标签: react-redux redux-form

我尝试使用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;

我们也在使用向导表格,但我没有看到任何可能会弄乱案件的内容。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:1)

由于末尾的/ i标志,您的正则表达式不区分大小写。 只需删除正则表达式末尾的/i即可:

> /^(?=[A-Z])(?=.*?[0-9])(?=.*?[^\w\s]).+$/i.test('hello1*')
true
> /^(?=[A-Z])(?=.*?[0-9])(?=.*?[^\w\s]).+$/.test('hello1*')
false