我想为密码字段编写一个模式,用户必须使用metachars作为密码(元字符如:@ @ $%^& *()),我搜索它但没找到任何模式,这是可能的吗?写这样的模式? 在此先感谢
答案 0 :(得分:0)
是。您可以将其中的大多数放入正则表达式中,就像任何其他角色一样。对于那些在正则表达式中具有特殊含义的用户,请根据您的编程语言为其添加\
或\\
作为前缀。
答案 1 :(得分:0)
如果您正在寻找与所有特殊字符匹配的正则表达式,您可以采取以下几种方法:
你可以编写一个排除字母数字的正则表达式:
/ [^ A-ZA-Z0-9] /
您可以选择您感兴趣的特殊字符,并使用反斜杠仔细转义regexp中具有特殊含义的字符,为该特定字符集编写您自己的正则表达式。
如果您知道将涉及什么字符集,以及它是否相当小(因此不是UTF-8,这将是巨大的),您可以通过它并识别特殊字符,然后执行上面的#2。如果您100%确定所有数据都将以(例如)ASCII字符形式出现,这可能是可行的。
答案 2 :(得分:0)
如果您的意思是密码必须至少包含其中一个字符,那么这样的内容可能会有效:
if (!preg_match('/['.preg_quote('!@#$%^&*()').']/', $password)) {
// fails
}