我希望編寫檢查一個變量是否只包含字母不是字符不是數字的PHP代碼,我已經輸入這一點,但它不工作:通過不使用額日格如何檢查一個字符串是否只包含PHP中的字母?
$myVar = "Var#iable5";
ereg(^[a-zA-Z] , $myVar)
我希望編寫檢查一個變量是否只包含字母不是字符不是數字的PHP代碼,我已經輸入這一點,但它不工作:通過不使用額日格如何檢查一個字符串是否只包含PHP中的字母?
$myVar = "Var#iable5";
ereg(^[a-zA-Z] , $myVar)
開始()。這幾年已經被貶低了,並且會在某些時候從PHP中刪除。另外,你的模式是不正確的。當你使用它的時候是^
是一個模式錨,意味着「開始行」。
你想:
preg_match('/[^a-zA-Z]/', $myVar)
代替。作爲[]
組中的第一個字符,^
意思是「不是」,所以「不是a-zA-z」,而不是你在嘗試時的「[a-zA-Z]在行首」。
您輸入的函數返回TRUE。它不應該。 – Montoolivo 2014-09-02 17:26:17
PHP有一個內置的功能,要做到這一點:ctype_alpha
$myVar = "Var#iable5";
var_dump (ctype_alpha($myVar)); // false
從文檔:
檢查是否所有的字符在提供的字符串中,文字是字母。在標準C語言環境中,如果$ text只是單個字符,但其他語言包含字母,則標準C語言環境中的字母僅爲[A-Za-z],ctype_alpha()與(ctype_upper($ text)|| ctype_lower($ text)那些被認爲既不是大寫也不是小寫。
旁註:['ereg()'](http://php.net/manual/en/function.ereg.php)已棄用。 *「這個函數從PHP 5.3.0開始已經被拒絕了,依賴這個特性是非常不鼓勵的。」* – 2014-09-02 17:17:45
你能定義「字母」而不是「字符」嗎?是一封信嗎?是Σ? – 2014-09-02 17:20:34
@mattgibson - 或者老ß? – Anthony 2014-09-02 17:28:58