在PHP中,如何檢查字符串是否僅包含字母?我想寫一個if語句,如果有(空格,數字,符號)或除a-z
和A-Z
以外的其他任何內容,將返回false。PHP正則表達式。檢查字符串是否僅包含字母
我的字符串只能包含字母。
我想我能做到這樣,但我做錯了:
if(ereg("[a-zA-Z]+", $myString))
return true;
else
return false;
如何找出是否myString
只包含字母?
在PHP中,如何檢查字符串是否僅包含字母?我想寫一個if語句,如果有(空格,數字,符號)或除a-z
和A-Z
以外的其他任何內容,將返回false。PHP正則表達式。檢查字符串是否僅包含字母
我的字符串只能包含字母。
我想我能做到這樣,但我做錯了:
if(ereg("[a-zA-Z]+", $myString))
return true;
else
return false;
如何找出是否myString
只包含字母?
從來沒有聽說過ereg
,但我猜測它會匹配子字符串。
在這種情況下,你要包括在你的正則表達式的兩端錨,從而迫使整個字符串匹配:
"^[a-zA-Z]+$"
此外,您可以簡化您的函數讀取
return ereg("^[a-zA-Z]+$", $myString);
因爲if
返回true
或false
從已有的布爾是多餘的。
或者,你可以匹配這不一個字母的任何字符,並返回結果的補充:在字符集,它反轉的開始
return !ereg("[^a-zA-Z]", $myString);
注意^
它。另外請注意,你之後不再需要+
,因爲單個「壞」字符會導致匹配。
最後......這個建議是Java,因爲你有你的問題的Java標籤。但 $myString
使它看起來像你正在處理,也許Perl或PHP?一些澄清可能會有所幫助。
請注意'ereg'從PHP 5.3開始已被棄用。使用['preg_match'](http://php.net/manual/en/function.preg-match.php)代替 – DrColossos 2015-04-01 10:41:49
或者,嘗試檢查是否包含字母其他任何東西:[^ A-ZA-Z]
是啊,這工作正常。謝謝
if(myString.matches("^[a-zA-Z]+$"))
您的代碼看起來像PHP
。如果字符串中有一個字母,它將返回true
。爲了確保該字符串有只有字母,你需要使用的開始和結束錨:
在Java
您可以使用matches
方法String
類的:
boolean hasOnlyLetters(String str) {
return str.matches("^[a-zA-Z]+$");
}
在PHP
功能ereg
現在是已棄用。您需要使用preg_match
作爲替換。該PHP
當量的上述功能是:
function hasOnlyLetters($str) {
return preg_match('/^[a-z]+$/i',$str);
}
我會有所不同,使用的是什麼信Character.isLetter
定義。
if (myString.matches("\\p{javaLetter}*"))
請注意,這不僅僅匹配[A-Za-z]*
。
一個字符被認爲是一個字母,當其一般類別類型,由
Character.getType(ch)
提供的,是以下任何一項:UPPERCASE_LETTER,LOWERCASE_LETTER,TITLECASE_LETTER,MODIFIER_LETTER,OTHER_LETTER並非所有的字母都有案例。許多字符都是字母,但既不是大寫也不是小寫,也不是標題。
\p{javaXXX}
字符類定義在Pattern
API。
做一個「是給定類型的所有字符」的最簡單方法是檢查是否任何字符不是該類型的。
所以如果\ W表示一個非字符,那麼只需檢查其中的一個。
一般來說是正確的,但是在Java中,通常會因爲隱式錨定'matches()'方法。所以它的.matches(「\\ w +」)'vs'!s.matches(「。* \\ W。*」)' – 2010-04-24 12:23:38
這不是Java。你可能意味着PHP。 – 2010-04-24 08:47:21
爲什麼是正則表達式? 'ctype_alpha($ myString);' – AbraCadaver 2017-01-25 16:26:58