2014-01-28 66 views
0

這是到目前爲止我的代碼:經常使用複合詞中的PHP代碼表達

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(preg_match('/[^A-Z]/i', $tagName)){ 
    $_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>"; 
} else { 
    $insertNewTagQuery = sprintf("INSERT IGNORE INTO solution_tags (SOLUTION_TAGS_NAME)VALUES(LOWER('%s'))", $tagName); 
    if($DBConnect->query($insertNewTagQuery)){ 
     header("Location:http://127.0.0.1/helpdesk/admin/thankyou.php"); 
    } 
} 

通過上面的代碼,我檢查是否在標籤是字符串,有空白,以及是否有除了英文字母以外的任何特殊字符。

給了它第二個想法,並且在課程中的工程師說過標籤可以是複合詞並且有特殊字符和數字,如Internet Explorer或'google-chrome'或HTML5我決定修改這個小腳本。

問題是我沒有建立正則表達式的經驗。

如何使用以下標準進行正則表達式?在兩個詞(互聯網瀏覽器中,谷歌鉻)

  • 中間

    • 複合詞
    • 短跑特殊字符沒有空格在字符串的開頭或結尾
  • +0

    **不要使用正則表達式來解析HTML。使用合適的HTML解析模塊**您無法可靠地使用正則表達式解析HTML,並且您將面臨悲傷和挫折。只要HTML從你的期望改變,你的代碼就會被破壞。請參閱http://htmlparsing.com/php或[this SO thread](http://stackoverflow.com/questions/3577641/how-do-you-parse-and-process-html-xml-in-php)如何使用已經編寫,測試和調試的PHP模塊正確解析HTML的示例。 –

    +0

    誰說我解析HTML?這是我需要驗證的字符串,以便它符合上述標準以使標籤有效。沒有涉及HTML。 – codeninja

    +0

    你的字符串中有HTML標籤。如果你想弄清楚什麼是標籤,哪些不是標籤,那麼你就是在解析HTML。你可能會想辦法做到這一點,但目前來看,你會感到沮喪。 –

    回答

    1

    這裏是一個符合您的要求的PHP正則表達式:

    /^\b[-a-z \d]*\b$/i 
    
    +0

    太棒了。非常感謝!我保證我會看看正則表達式的教程。由於該項目在本週五到期,因此我現在沒有足夠的時間來尋找它。 – codeninja