[英]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]
匹配任意数量的非字母字符直到字母。实际上,您只需要两个前瞻即可独立于条件。 一个用于所需的数字,一个用于单词。 字母的要求可以在模式内完成。
环视是在某个位置触发的零长度断言。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.