繁体   English   中英

javascript regex 需要至少一个字母,一个数字并防止添加某些单词

[英]javascript regex requiring at least one letter, one number and prevents from adding certain words

我正在尝试修改我的正则表达式,它要求用户至少输入一个字母和一个数字,如下所示:

new RegExp('^(?=.*[a-z])(?=.*[0-9]).+$')

我想阻止用户在@之前使用某些词,例如电子邮件地址部分。

所以让我们假设电子邮件地址是example@example.com

我想强制用户使用不包含example的字符串(字符串的任何部分)

这是我到目前为止:

\b(?:(?!example)\w)+\b

但它并没有真正强迫用户至少使用一个字符和一个数字。

当我试图限制它时,我最终得到了这个:

\b(?:(?!example).*[a-z].*[0-9])+\b

但是现在字符串必须遵循example的顺序,然后是[az] ,然后是[0-9]

非常感谢任何帮助

谢谢!

在您的示例中,负前瞻仅在字符串的开头不允许example 只需添加.*? 作为小丑禁止在字符串中的任何位置使用单词,并在需要时使用单词边界\\b

/^(?!.*?example)(?=\D*\d)[^a-z]*[a-z].*$/i
  • (?!.*?example) first lookahead 不允许该行中的任何位置的example
  • (?=\\D*\\d)第二次前瞻需要在任意数量的\\D非数字之后有一个数字。
  • [^az]*[az]匹配任意数量的字母字符直到字母。

在 regex101 上查看演示

实际上,您只需要两个前瞻即可独立于条件。 一个用于所需的数字,一个用于单词。 字母的要求可以在模式内完成。

环视是在某个位置触发的零长度断言。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM