正如标题所说,我只需要在preg_match中允许一个普通的斜杠。我想是类似/或什么的东西。但这行不通。
我还需要允许欧洲字母:æ,ø,
例子strong>
if(preg_match("/^[a-zA-Z -]+$/", $_POST["last_name"]) == 0)
{
$errMsg = "Dit efternavn må kun indeholde bogstaver, mellemrum og bindestreg.<br>";
}
然后是aif(count($errMsg)==0){
}
提前感谢。
这些字符可以正常使用,以便使用斜杠(/
)。你需要用反斜杠('
)来转义它们。像这样:
preg_match("%^[-a-zA-Z æøå'/]+$%");
还请注意,您可以使用任何字符作为分隔符,使用不太可能出现在模式本身中的字符可能是明智的(在本例中,我选择了%
)。
在正则表达式中放入æø
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修饰符
您需要转义斜杠或将分隔符更改为任何其他例如~
,如第二个示例
u修饰语很重要
的例子:
$str=ord(166);
if(preg_match('~[æ]~',$str)){
print 'without';
}
if(preg_match('~[æ]~u',$str)){
print 'with';
}
只打印without
在第一个例子中,æ
被视为两个符号,它们中的每一个都是匹配的