関数ctype_alpha
があることがわかりますが、文字列にスペース(空白文字)が含まれている場合はFALSE
が返されます。PHPで空白文字を含むアルファベット文字列のみを検証する方法は?
どのようにアルファ文字とスペースを使用できますか?
関数ctype_alpha
があることがわかりますが、文字列にスペース(空白文字)が含まれている場合はFALSE
が返されます。PHPで空白文字を含むアルファベット文字列のみを検証する方法は?
どのようにアルファ文字とスペースを使用できますか?
$is_alpha_space = ctype_alpha(str_replace(' ', '', $input)));
または
$is_alpha_space = preg_match('/^[a-z\s]*$/i', $input);
ありがとうございます。私は最初のものが好きです。私はちょうど学習目的のために疑問に思っています、あなたはその最初のものについてどのように知っていますか?私はドキュメンテーションでさえ伝えることができないからです。 – Carpet
それは1つの機能ではありません。 'str_replace()'を使って空白を取り除き、 'ctype_alpha()'を実行してその結果がアルファベット順であることを確認します。 – dtbarne
私は理解していますが、ドキュメントのctypeページがそれを指摘していないとき(それを行うことができるか)、それをどうやって知っていますか?分かりません。 – Carpet
if (preg_match("^/[a-zA-Z ]+$/", $input)) {
// input matches
}
デモ:http://ideone.com/jp6Wi
ドキュメント:http://php.net/manual/en/function.preg-match.php
ctype_alpha(preg_replace('/\s/', '', $mystring))
内側の式は、スペースのない文字列を返し、その後、あなたが望むようにctype_alpha``使用
これは**のカテゴリに該当します**ファンシーな置換ルールが必要ない場合は、 'preg_replace'の代わりに' str_replace'を使うべきです。** – toxalot
スペースを削除する方法はありますが、最近、ctype_alphaの結果が空の文字列の場合はfalseになります。方法の下で私は使用します...
function validateAlpha($valueToValidate, $spaceAllowed = false) {
if ($spaceAllowed) {
$valueToValidate = str_replace(' ', '', $valueToValidate);
}
if (strlen($valueToValidate) == 0) {
return true;
}
return ctype_alpha($valueToValidate);
}
確認する前に、スペースで置き換えますか? – DanRedux
@DanReduxは、文字列に事前に数値が含まれていない場合にのみ機能します。 –
なぜですか?あらかじめ数値が入っていれば、正しくfalseを返します。それに数字が入っていれば、正しくfalseを返します。スペースを悪いトークンに変換することで、スペースを悪いトークンとして扱うだけです。 – DanRedux