(!ctype_alpha($director))
我正在嘗試使用ctype_alpha()函數。如何檢查變量是否包含字母字符但允許空格?
EG
if(!ctype_alpha($variable)) {
The value entered contains other characters.
}
這種方法的問題是,它不會允許用空格的字符串。我如何確保用戶只輸入字母,但允許空格(即名稱)?
(!ctype_alpha($director))
我正在嘗試使用ctype_alpha()函數。如何檢查變量是否包含字母字符但允許空格?
EG
if(!ctype_alpha($variable)) {
The value entered contains other characters.
}
這種方法的問題是,它不會允許用空格的字符串。我如何確保用戶只輸入字母,但允許空格(即名稱)?
嘗試以下操作:
preg_match('/[a-zA-Z ]+/', $variable, $matches);
print_r($matches);
其實,
function alphaSpace($string){
return preg_match('/[a-zA-Z ]+/', $string) ? 1 : 0;
}
echo alphaSpace($someString) ? "It's a match!" : "It's not a match.";
,只會告訴你,如果有一個匹配。當然,$someString
將是您選擇的字符串。
這不處理非英文字符集。 –
對不起,我以爲你已經使用'preg_match()'。 – PHPglue
它會很慢,但對於小輸入流不是問題,您可以一次循環一個字符的字符串,然後檢查!ctype_alpha($ c)& &! ctype_space($ c)。
這很大程度上取決於你所說的字母,比如:a-z? a-záéçç?對於第一個,你應該使用:
if (preg_match("/^[a-zA-Z ]*$/",$variable)) {
}
對於第二個:
if (preg_match("/^[[:alpha:] ]*$/",$variable)) {
}
對於你應該檢查PHP's PCRE manual page更多的選擇。
使用'*'不包含任何內容。我們還應該詢問'@Annon Omus'是否包含「,在他的問題中是正確的詞,因爲使用開頭'^'和關閉'$'將意味着開始和結束於。 – PHPglue
你說得對,雖然你說的方式有點混亂。事情是:當前模式讓空字符串通過; @Anon Omus需要將「*」改爲「+」,如果他或她需要排除空字符串的話。我故意把這個放在我的例子之外,因爲它會給答案增加一些複雜性。你可以繼續挖掘:如果雙空間失敗?以空格開頭/結尾的字符串是否會失敗? –
您可以像我的代碼一樣使用function
。在輸入if else
條件之前,我使用str_replace
刪除空格。因此,如果variable
包含字母字符,它將返回TRUE
。
function check_string($var){
$var = str_replace(' ', '', $var);
if(ctype_alpha($var)){
$result = TRUE;
}
else{
$result = FALSE;
}
return $result;
}
EG
if(check_string($var)) {
TRUE IF VARIABLE CONTAINS ALPHABETIC CHARACTERS
}
您可以嘗試使用此方法'ctype_space' – lighter