2017-09-02 30 views
1

HTML如何驗證「提供至少2個標籤,用逗號分隔」從標籤文本字段在PHP中?

<h3>Tags</h3> 
<input <?php echo $err_st3; ?> type="text" name="tags" id="textfield" 
placeholder="Example: tag, another tag, hello tagging" value=" 
<?php echo @$tagsOK; ?>"> 

$tags=array(); 
$tagline = $_POST['tags']; 
//TAGS 
if(!empty($tagline)){ 
    $tokens = str_replace(' ', '', $tagline); 
    $tags = explode(',',$tokens); 
    $tags = array_unique($tags); 
    foreach ($tags as $tag) { 
     if(preg_match("/^[0-9a-zA-Z]$/",$tag) === 0) { 
      // error  
     } 
     else{ 
      echo $count_tags = $count_tags+1; 
     } 
    } 
    if($count_tags <= 1){ 
     $error[]=" - Please provide at least 2 tags, separated by commas."; 
     $err_st3 = $st; 
    } 
    $tagsOK = implode(', ',$tags); 
} 
else{ 
    $error[]=" - Please provide at least 2 tags, separated by commas."; 
    $err_st3 = $st; 
} 

當我輸入類似 「A,B」 字母,那麼這將是有效的。

但它不驗證的話,如「車輛,人物,場景」

+2

您在'的preg_match匹配您的正則表達式一個字符() '。避免在不需要時使用正則表達式,或者,如果您的代碼正常工作,請使用其他術語;爲什麼我只能輸入帶有-Z和0-9個字符的標籤?這是相當嚴格的。 –

+0

但沒有'preg_match()'它會添加空格作爲第二個標籤,像這樣''Animal,[space]「' –

回答

0

而不是做的preg_match檢查長度:

strlen($tag)==1 
+0

Works ...但是當我只輸入1個標籤..它會添加空間作爲第二個標籤, 「動物,[空間]」' –

+0

如果標籤是單詞或空格,它不會滿足它去條件的條件 –

相關問題