javascript 正则表达式要求至少一个字母、一个数字并防止添加某些单词
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
然后 [a-z]
然后 [0-9]
的顺序
非常感谢任何帮助
谢谢!
在您的示例中,否定前瞻仅在字符串的开头不允许 example
。如果需要,只需添加 .*?
as joker to disallow the word anywhere in the string and use word boundaries \b
。
/^(?!.*?example)(?=\D*\d)[^a-z]*[a-z].*$/i
(?!.*?example)
先行禁止 example
行中的任何地方
(?=\D*\d)
第二次前瞻需要在任意数量的 \D
非数字之后有一个数字。
[^a-z]*[a-z]
匹配任意数量的 non 字母字符,直到字母。
实际上,您只需要两个独立于条件的前瞻。一个用于所需的数字,一个用于单词。字母要求可以在pattern里面完成
环视是在特定位置触发的零长度断言。
我正在尝试修改我的正则表达式,它要求用户至少键入一个字母和一个数字,如下所示:
new RegExp('^(?=.*[a-z])(?=.*[0-9]).+$')
而且我想阻止用户在 @
之前使用某些词,例如电子邮件地址部分。
所以我们假设电子邮件地址是 example@example.com
我想强制用户使用不包含 example
的字符串(字符串的任何部分)
这是我目前所拥有的:
\b(?:(?!example)\w)+\b
但它并没有真正强制用户至少使用一个字符和一位数字。
当我试图限制它时,我以这样的方式结束:
\b(?:(?!example).*[a-z].*[0-9])+\b
但现在字符串必须遵循 example
然后 [a-z]
然后 [0-9]
非常感谢任何帮助
谢谢!
在您的示例中,否定前瞻仅在字符串的开头不允许 example
。如果需要,只需添加 .*?
as joker to disallow the word anywhere in the string and use word boundaries \b
。
/^(?!.*?example)(?=\D*\d)[^a-z]*[a-z].*$/i
(?!.*?example)
先行禁止example
行中的任何地方(?=\D*\d)
第二次前瞻需要在任意数量的\D
非数字之后有一个数字。[^a-z]*[a-z]
匹配任意数量的 non 字母字符,直到字母。
实际上,您只需要两个独立于条件的前瞻。一个用于所需的数字,一个用于单词。字母要求可以在pattern里面完成
环视是在特定位置触发的零长度断言。