允许斜杠&& # 230; & # 248; & # 229;preg_match


Allow slash & æ,ø,å in preg_match

正如标题所说,我只需要在preg_match中允许一个普通的斜杠。我想是类似/或什么的东西。但这行不通。

我还需要允许欧洲字母:æ,ø, 。这是如何做到的呢?

谁能告诉我这个?: -)

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在第一个例子中,æ被视为两个符号,它们中的每一个都是匹配的