php
  • regex
  • 2013-12-19 160 views 3 likes 
    3

    現在我正在檢查字符串是否爲空或具有空格。到目前爲止,這是我的代碼,它的工作原理。檢查字符串是否有空白或特殊字符

     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>"; 
         } 
        } 
    } 
    

    前兩個如果的工作,一個在那裏我檢查,如果字符串是空的,另一種是我檢查字符串中有空格。

    現在我想檢查字符串是否有任何特殊字符,但我不知道如何才能爲該場景形成正則表達式。請有人能幫助我嗎?

    從這個項目有點背景,這就是我將插入一個幫助臺的標籤,標籤可以是這樣的話:

    -internet -connection - 無線 -router - 互聯網探險家 -Google鉻 -firefox

    編輯:

    特殊字符是指字母表之外的所有內容。只允許A-Z,a-z。

    +1

    這可能是一個愚蠢的問題,但是...你說的特殊字符意味着什麼? – andrewsi

    +0

    你可以使用類似於:'if(preg_match('/ [:punct:] /',$ tagName)){'。由於您沒有指定**你的**是由特殊字符*表示的,因此不是一個準確的答案。 –

    +0

    通過這個單詞列表看起來,它看起來像你需要'/ [^ a-z \ - ] /' –

    回答

    5

    您可以使用此條件:

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

    刪除\s因爲[^A-Z]還包括空間。

    +0

    剛剛編輯我的帖子。 @anubhava – codeninja

    +0

    @Yisera:根據您的編輯更新答案。 – anubhava

    +0

    /i片段代表什麼? – codeninja

    0

    如果你只需要允許A-Za-z,使用ctype可能是更好的選擇在這裏:

    if(!ctype_alpha($tagName)){ 
        // fail... 
    } 
    
    相關問題