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

时间:2013-12-19 20:52:01

标签: php regex

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

     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 -连接 -无线 -路由器 -IE浏览器 -谷歌浏览器 -firefox

编辑:

通过特殊字符,我指的是字母表之外的所有内容。只允许A-Z,a-z。

2 个答案:

答案 0 :(得分:4)

您可以使用以下条件:

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

已移除\s,因为[^A-Z]还包含空格。

答案 1 :(得分:0)

如果您只需要允许A-Za-z,那么使用ctype可能是更好的选择:

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