Regex [data parsley pattern]允许特殊字符

问题描述 投票:0回答:1

对不起我的正则表达式技能。

我正在使用parsleyjs&我有这个规则:

export const PASSWORD_RULE5 = /[\[\]@$!%*?&£€^(){}:"|<>/]{1}/;

这有效。将应用此规则,如果密码中未出现这些字符之一,它将突出显示并警告他们需要添加特殊字符。

问题是输入具有data_parsley_pattern

data_parsley_pattern = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&£€^(){}:"|<>])[A-Za-z\\d!$%@#£€*?&]{8,}$"

这允许使用密码

  • 至少8个字符
  • 至少1个大写字符
  • 至少1个小写字符
  • 至少1个数字
  • 至少一个特殊字符

如果他们在密码中输入^,它将不再突出显示,但是data_parsley_pattern仍然失败。

无论我尝试什么,我都无法使它正常工作。

我已经尝试在此处添加新的允许的特殊字符,也尝试将其转义,但是规则仍然失败。

^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&**£€^(){}:"|<>/**])[A-Za-z\\d!$%@#£€*?&]{8,}$

^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&**£€\\^\\(\\)\\{\\}\\:\"\|\\<\\>\\/**])[A-Za-z\\d!$%@#£€*?&]{8,}$

我需要区别对待这些字符吗?

感谢您的见解。

javascript regex parsley.js
1个回答
0
投票

感谢@JvdV的评论,我意识到我在正则表达式的重要部分中缺少特殊字符。

感谢@Pradeep,您在注释中提供的工具在测试Regex时提供了巨大的帮助。

我遇到的另一个问题是,我正在使用ASP.Net MVC和@ Html.PasswordFor,因此转义字符略有不同。

这是上述问题的解决方案:

data_parsley_pattern =“ ^(?=。[az])(?=。 [AZ])(?=。\ d)(?=。 [\\\” @ $ !%?&£€^(){}:| <> /])[A-Za-z \ d!$%@#£€?&^(){} \\\“:| <> /] {8,} $“

© www.soinside.com 2019 - 2024. All rights reserved.