※ 昔使っていた『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 が使用されています
|
【PHP + ベーシックの最新記事】
- PHP : ユニークなキーの取得
- PHP で HTML数値エンティティを、目的のキャラクタセットの文字列に変換する
- PHP : $_GET、$_POST、$_SESSION とグローバル変数全ての簡単な表示方法
- Windows・Unix(Linux)共用、PHPの include_path の動的設定方法
- PHP : PHPコマンドラインから使用中の ini ファイルをチェック
- 初心者用ファイルアップロード用テンプレート( 含 HTML5 の multiple="true" )
- PHP : 改行とタブと余り(%) でカレンダーを作成( 最終日は mktime で取得 )
- PHP : 前ゼロ文字列作成と右から必要な長さ文字列を取得する処理
- PHP : date 関数