php
で入力された文字列などの前後のスペースを除去する場合のメモです。
php
では「trim()」という関数がありますが、半角のスペースは削除してくれるのですが、
全角のスペースは削除されません。
半角のスペースのみ削除する場合はtrim()でいいと思います。
なので、今回は文字列の先頭、末尾にある半角・全角スペースを
正規表現
を使用し削除する方法をメモします。
■ 先頭、末尾の半角・全角スペース削除
・先頭の半角・全角スペース削除
1
|
$str = preg_replace( '/^[ ]+/u' , '' , $str ); |
“^[ ]”で行頭が半角スペース、または全角スペースで始まる文字に一致させます。
“+”で直前の文字の1回以上の繰り返しに一致させます。
上記で一致した値を空文字で置換しています。
・末尾の半角・全角スペース削除
1
|
$str = preg_replace( '/[ ]+$/u' , '' , $str ); |
“[ ]+”で半角スペース、または全角スペースの1回以上の繰り返しに一致させます。
“$”で末尾を示すので末尾が半角全角スペースの場合に一致します。
上記で一致した値を空文字で置換しています。
上記の両方を行うことで先頭、末尾の半角・全角スペースを削除することができます。
1
2
|
$str = preg_replace( '/^[ ]+/u' , '' , $str ); $str = preg_replace( '/[ ]+$/u' , '' , $str ); |
■ 上記を関数にした場合
対象の文字列を作成した関数の引数で渡し、
スペースを削除した値をリターンします。
1
2
3
4
5
6
7
8
9
|
function space_trim ( $str ) { // 行頭の半角、全角スペースを、空文字に置き換える $str = preg_replace( '/^[ ]+/u' , '' , $str ); // 末尾の半角、全角スペースを、空文字に置き換える $str = preg_replace( '/[ ]+$/u' , '' , $str ); return $str ; } |