正如标题所说,我只需要在preg_match中允许正常的斜杠。我认为这是/或某事。但这不起作用。
我还需要允许欧洲字母:æ,ø,å。这是怎么做到的?
有人可以告诉我这个吗? :-)
示例
if(preg_match("/^[a-zA-Z -]+$/", $_POST["last_name"]) == 0)
{
$errMsg = "Dit efternavn må kun indeholde bogstaver, mellemrum og bindestreg.<br>";
}
然后我正在做一个
if(count($errMsg)==0){
}
提前致谢。
答案 0 :(得分:2)
这些字符可以正常使用,以便使用斜杠(/
)。你需要用反斜杠(\
)来逃避它们。像这样:
preg_match("%^[-a-zA-Z æøå\/]+$%");
另请注意,您可以使用任何字符作为分隔符,使用不太可能出现在模式中的字符可能是明智的(在这种情况下,我选择了%
)。
答案 1 :(得分:1)
将æøå放入正则表达式以匹配这些字符。要匹配斜杠,只需使用单个反斜杠将其转义即可。
答案 2 :(得分:0)
if(preg_match("/^[a-zA-Z -\/æøå]+$/u", $_POST["last_name"]) == 0)
if(preg_match("~^[a-zA-Z -/æøå]+$~u", $_POST["last_name"]) == 0)
u
修饰符适用于UTF-8
Modifiers
您需要将斜杠或更改分隔符转换为其他任何分隔符,例如第二个示例中的~
u modofier很重要
示例:
$str=ord(166);
if(preg_match('~[æ]~',$str)){
print 'without';
}
if(preg_match('~[æ]~u',$str)){
print 'with';
}
仅打印without
在第一个示例中,æ
被视为两个符号,并且每个符号都匹配