※ 昔使っていた『PHP正規表現チェッカー』のサイトが閉鎖されたので他のサイトに変更しました
PHP では trim と言う関数で、文字列の先頭および末尾にあるホワイトスペースを取り除く事ができますが、デフォルトでは以下の文字を削除します。
" " (ASCII 32 (0x20)), 通常の空白。
"\t" (ASCII 9 (0x09)), タブ。
"\n" (ASCII 10 (0x0A)), リターン。
"\r" (ASCII 13 (0x0D)), 改行。
"\0" (ASCII 0 (0x00)), NULバイト
"\x0B" (ASCII 11 (0x0B)), 垂直タブ
で、日本語スペースはこのままでは削除してくれないので、追加してみると普通に削除してくれました。
Run Code で実行
<?php
$kj = "漢字表示";
$kj_space = " ";
$a_space = " ";
$str = "{$kj_space}{$a_space}{$kj}{$kj_space}{$a_space}";
$str = trim($str, "{$a_space}\t\n\r\0\x0B{$kj_space}");
print "|{$str}|";
?>
また、同様の結果を preg_replace で得る方法もテストしてみました。この場合重要なのは、パターン修飾子 の "u" でした。(パターンと対象文字列は、 UTF-8 として処理されます)
Run Code で実行
<?php
$kj = "漢字表示";
$kj_space = " ";
$a_space = " ";
$str = "{$kj_space}{$a_space}{$kj}{$kj_space}{$a_space}";
$str = preg_replace( "/^[ \s]+/u", "", $str );
$str = preg_replace( "/[ \s]+$/u", "", $str );
print "|{$str}|";
?>
また、正規表現のパーターンを一つにして一回で置換する場合は以下のようになります
<?php
$kj = "漢字表示";
$kj_space = " ";
$a_space = " ";
$str = "{$kj_space}{$a_space}{$kj}{$kj_space}{$a_space}";
$str = preg_replace( "/^[ \s]+|[ \s]+$/u", "", $str );
print "|{$str}|";
?>
この場合、重要なのは | を使った構文です
確認は、PHP正規表現チェッカー(置き換え) で解りやすく行う事ができます
▼ パターン文字列は ^[ \s]+|[ \s]+$
PHP正規表現チェッカーで デベロッパーツールを F12 で開いて(コンソール) 以下を実行できます。
$("input[name='pattern").val("^[ \\s]+|[ \\s]+$");$("input[name='replacement']").val("削除");$("#subject").val(" 漢字表示 ");$('#preg_replace').keyup();
※ このサイトでは、jQuery が使用されています