我知道这是一件简单的事情。但我就是无法让它发挥作用。
要求:至少包含一个数字、字母(可以是大小写)和至少一个符号(特殊字符)的单词。
在 C# 中 (?=.[0-9])(?=.[a-zA-z])(?=.*[!@#$%_]) 有效。但在 javascript 中它不起作用。 似乎它总是在开头查找数字,因为我的条件以 regexp.f 中的数字开头
任何人都可以给我一个可以在 JavaScript 中使用的正则表达式吗?
-拉克什
最佳答案
JavaScript 确实支持前瞻。但是,您的组希望数字和字母之前至少有一个字符(因为它们仅以点 .
开头)。尝试向这两个点添加 *
:
var pattern = /(?=.*[0-9])(?=.*[a-zA-z])(?=.*[!@#$%_])/;
pattern.test('xxx'); // false
pattern.test('111'); // false
pattern.test('!!!'); // false
pattern.test('x1!'); // true
我在 C# 中的正则表达式中也遇到了同样的问题。
关于javascript - 正则表达式 - javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2015183/