2016-03-25 103 views
0

我見過很多其他問題,主要是詢問如何防止在整個textarea中輸入空格,但我想知道如何檢查textarea是否包含空格?如何防止用戶在文本區域輸入空格

例如,這裏是我的textarea:

<textarea id='textarea' name='msg' rows='2' maxlength='255' cols='80' placeholder=' Share a thought...'></textarea> 

我可以很容易地檢查,如果上面是空做:

$post_msg = htmlentities(strip_tags(@$_POST['msg'])); 
$post_msg=mysqli_real_escape_string($connect,$post_msg); 
if ($post_msg != "") { 
    // do this 
} 

但是,如果用戶輸入只是空格字符,然後該領域顯然不是空的,無效的上述檢查。我如何檢查用戶是否輸入了空格字符?

消息可以以空格字符開頭,但它不能只是空格字符。

+0

'empty'是一個更好的選擇比檢查它是否不是空字符串。 http://php.net/empty –

+0

只需修剪()它... – frosty

+0

修剪,ltrim,rtrim是您可以用來刪除空格的所有功能。 trim會從字符串的開頭和結尾刪除空格,ltrim從左邊移除,rtrim從右邊移除。 – Devon

回答

0

由於意見提的是,你應該看看TRIM function PHP和/或JavaScript的。

該函數返回一個字符串,其中從str的開頭和結尾剝離了空格。如果沒有第二個參數,trim()會去掉這些字符:

  • 「」(ASCII 32(0x20)),一個普通的空間。
  • 「\ t」(ASCII 9(0x09)),一個選項卡。
  • 「\ n」(ASCII 10(0x0A)),換行(換行)。
  • 「\ r」(ASCII 13>(0x0D)),回車符。
  • 「\ 0」(ASCII 0(0x00)),NUL字節。
  • 「\ x0B」(ASCII 11(0x0B)),一個垂直標籤。

爲了實現我喜歡修剪很早,所以我可能會用htmlentities()線做

$post_msg = htmlentities(trim(strip_tags(@$_POST['msg']))); 
0

使用javascript函數裝飾()它消除了空格和檢查,如果用戶輸入一個空字符串

var str = document.getElementById("id").value; 
if(str.trim() == '') { 

alert("error"); 
} 
+0

不要依賴客戶端。在服務器上執行它。 –

+0

@CharlotteDunois我認爲它應該在客戶端和服務器上完成。服務器爲您自己的理智和保護。客戶端爲用戶體驗。 – EnigmaRM

1

要做到這一點,你可以用這個,這不僅會檢查空間而且空格任何其他形式:

$post_msg = htmlentities(strip_tags(@$_POST['msg'])); 
$post_msg=mysqli_real_escape_string($connect,$post_msg); 
$post_msg_check=preg_replace('/\s+/', '', $post_msg); 
if ($post_msg_check == "") { 
    // User's entry is blank $post_msg is the user's entry 
} else { 
    // User's entry is not blank $post_msg is the user's entry 
} 
+0

這將刪除所有空格,而不僅僅是多餘的空格。 – Devon

+0

preg_replace用於檢查字符串,我會編輯我的答案以使其更清晰,並且htmlentities在他以前的代碼中很糟糕,所以它必須在那裏出於某種原因。 – iJamesPHP

0

這裏是你的答案

$post_msg = htmlentities(strip_tags(@$_POST['msg'])); 
$post_msg=mysqli_real_escape_string($connect,$post_msg); 
$post_msg_check_space=preg_replace('/\s+/', '', $post_msg); 
if ($post_msg_check_space==""){ 
    //there's only space 
}else{ 
    //there's things other than space, use $post_msg 
} 

您還可以使用JavaScript和裝飾發送和檢查PHP前檢查:

var string = document.getElementById("id").value; 
var string_check_space = string.trim(); 
if (string_check_space !=''){ 
    getElementById("buttonSubmit")[0].submit(); 
} 
相關問題