文字列内の空白を検出するにはどうすればよいですか? たとえば、次のような名前文字列があります。
"ジェーン・ドウ"
トリミングしたり置き換えたりしたくないことに注意してください。最初の文字列と2番目の文字列の間に空白が存在するかどうかを検出するだけです。
文字列内の空白を検出するにはどうすればよいですか? たとえば、次のような名前文字列があります。
"ジェーン・ドウ"
トリミングしたり置き換えたりしたくないことに注意してください。最初の文字列と2番目の文字列の間に空白が存在するかどうかを検出するだけです。
Josh の提案に従って preg_match を使用します。
<?php
$foo = 'Bob Williams';
$bar = 'SamSpade';
$baz = "Bob\t\t\tWilliams";
var_dump(preg_match('/\s/',$foo));
var_dump(preg_match('/\s/',$bar));
var_dump(preg_match('/\s/',$baz));
出力:
int(1)
int(0)
int(1)
空白ではない英数字のみをチェックできます。スペースに対して strpos を実行することもできます。
if(strpos($string, " ") !== false)
{
// error
}
preg_match("/\s/",$string) は機能しませんか? strpos に対するこの利点は、スペースだけでなく空白も検出できることです。
次のようなものを使用できます。
if (strpos($r, ' ') > 0) {
echo 'A white space exists between the string';
}
else
{
echo 'There is no white space in the string';
}
これはスペースを検出しますが、他の種類の空白は検出しません。
// returns no. of matches if $str has nothing but alphabets,digits and spaces. function
is_alnumspace($str) {
return preg_match('/^[A-Za-z0-9 ]+$/i',$str);
}
// This variation allows uppercase and lowercase letters.
// returns no. of matches if $str has nothing but alphabets,digits and spaces.
function is_alnumspace($str){
return preg_match('/^[a-z0-9 ]+$/i',$str);
}
<?php
if(strpos('Jane Doe', ' ') > 0)
echo 'Including space';
else
echo 'Without space';
?>