带有一个特殊字符的正则表达式,避免句点和括号

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

我正在使用正则表达式来验证具有以下要求的密码:

  1. 它不以特殊字符开头。
  2. 它可以计算数字、字母和特殊字符,但句点和括号除外。
  3. 特殊字符只能出现1次。

我的正则表达式是这个:

/^[a-zA-Z0-9]+(?!\S*([\W_.()])\S*\1{1,})\S*$/

正则表达式无法正常工作,因为它继续接受句点和括号。

您知道如何才能达到上述要求吗?

提前致谢。

regex regex-group
1个回答
0
投票

我认为你甚至不需要对此进行预判。如果您将特殊字符定义为 [不是空格、没有数字或字母、没有点、没有括号],那就是

[^\s\da-z.)(]

^[^\W_]+[^\s\da-z.)(]?[^\W_]*$

请参阅 regex101 上的演示 - 与

i
-flag 一起使用(如果支持内联标志,则在前面添加
(?i)


[^\W_]
只是字母数字字符的缩写,开头有一个或多个,结尾有任意数量。

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