Php 检查字符串是否同时包含空格或特殊字符

Php 检查字符串是否同时包含空格或特殊字符,php,regex,Php,Regex,现在我正在检查字符串是空的还是有空格。到目前为止,这是我的代码,它是有效的 if(isset($_POST['newTagSubmit'])){ $tagName = $_POST['tagName']; if(empty($tagName)){ $_ErrorMessage = "<div class='alert alert-danger' id='errorBox'>"; $_ErrorMessage.= "<b&

现在我正在检查字符串是空的还是有空格。到目前为止,这是我的代码,它是有效的

     if(isset($_POST['newTagSubmit'])){
    $tagName = $_POST['tagName'];
    if(empty($tagName)){
        $_ErrorMessage = "<div class='alert alert-danger' id='errorBox'>";
        $_ErrorMessage.= "<b>Error!</b> Por favor ingrese una etiqueta en el campo de texto proporcionado.";
        $_ErrorMessage.= "</div>";
    } else {
        if(preg_match('/\s/',$tagName)){
            $_ErrorMessage = "<div class='alert alert-danger' id='errorBox'>";
            $_ErrorMessage.= "<b>Error!</b> La etiqueta no puede contener espacios. Asegúrese de escribirla correctamente.";
            $_ErrorMessage.= "</div>";
        } elseif(/*code here*/){
            $_ErrorMessage = "<div class='alert alert-danger' id='errorBox'>";
            $_ErrorMessage.= "<b>Error!</b> La etiqueta no puede contener carácteres especiales. Cáracteres especiales son todos aquellos que no estan dentro del alfabeto. Por favor escríbala de nuevo.";
            $_ErrorMessage.= "</div>";
        }
    }
}
前两个if的工作,一个是检查字符串是否为空,另一个是检查字符串是否有空格

现在我想检查字符串是否有任何特殊字符,但我不知道如何为该场景形成正则表达式。谁能帮帮我吗

这个项目的一点背景是,我将在这里为帮助台插入标签,标签可以是这样的文字:

-互联网 -联系 -无线的 -路由器 -internet explorer -谷歌浏览器 -火狐

等等

编辑:


我所说的特殊字符是指字母表以外的所有字符。只允许A-Z,A-Z

您可以使用以下条件:

preg_match('/[^A-Z]/i',$tagName);

从[^A-Z]起删除的\s还包括空格。

您可以使用以下条件:

preg_match('/[^A-Z]/i',$tagName);
已删除,因为[^A-Z]还包括空格。

如果只需要允许A-Z和A-Z,使用可能是更好的选择:

if(!ctype_alpha($tagName)){
  // fail...
}
如果您只需要允许A-Z和A-Z,在此处使用可能是更好的选择:

if(!ctype_alpha($tagName)){
  // fail...
}

这可能是个愚蠢的问题,但是。。。特殊字符是什么意思?您可以使用类似于:if preg_match'/[:punct://',$tagName{。这不是一个准确的答案,因为您没有指定特殊字符的含义。根据单词列表的外观,您似乎需要/[^a-z\-]/这可能是一个愚蠢的问题,但是…你说的特殊字符是什么意思?你可以使用诸如:if preg_match'/[:punct://',$tagName{。这不是一个准确的答案,因为你没有指定特殊字符的含义。通过单词列表的外观,看起来你需要/[^a-z\-]//i片段代表什么?/i代表忽略大小写匹配。/i片段代表什么?/i代表忽略大小写匹配。