我试图修改我的正则表达式,要求用户输入至少一个字母和一个数字,如下所示:
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]
任何帮助非常感谢
谢谢!
答案 0 :(得分:2)
在您的示例中,负向前瞻仅在字符串的开头处不允许function isPalindrome(s) {
s=s.toLowerCase().match(/\w/g);
return s.join()==s.reverse().join();
}
。只需将.*?
添加为joker即可禁用字符串中的任意位置,并在需要时使用word boundaries \b
。
example
/^(?!.*?example)(?=\D*\d)[^a-z]*[a-z].*$/i
首先要在行中的任何地方禁止(?!.*?example)
example
秒前瞻需要任意数量的(?=\D*\d)
非数字后的数字。\D
匹配任意数量的non - 字母字符,直到字母为止。实际上你只需要两个前瞻来独立于条件。一个用于所需的数字,一个用于单词。字母的要求可以在模式内完成。
Lookarounds是在某个位置触发的零长度断言。