プロが教える店舗&オフィスのセキュリティ対策術

掲示板などで、投稿された名前などに入っている全角スペースを切り落としたいのです。

$name =~ s/\s+//g;

これでやってみたのですが、半角スペースしか切り落とせません。
全角スペースを切り落とすにはどのような方法がありますでしょうか?
自分なりに調べてみたんですが、わかりませんでした。
お時間ございましたら、教えていただけますでしょうか?
方法を紹介してあるURLだけでも結構ですので、よろしくお願い致します。

A 回答 (3件)

perlの正規表現で大文字と小文字を区別しない、修飾子があります。


「i」です。
私も試したことがないのですが、この修飾子を使えば出来るのではないかと
思っています。
是非試してみてください。

$name =~ s/ //i;
    • good
    • 0

入ってくるデータがEUCで、スクリプトもEUCなら


$name =~ s/ //g;
でそのままできますよ。
文字コードが違うならjcodeとか使って変換してから
というのもありですが、そんなのも面倒なので

$name =~ s/\x81\x40//g; …SJIS
$name =~ s/\xa1\xa1//g; …EUC

というのがいいのでは。
    • good
    • 1
この回答へのお礼

>入ってくるデータがEUCで、スクリプトもEUCなら $name =~ s/ //g;
でそのままできますよ。

実は、試してみたのですがダメだったのです。
しかし、これを書いたのが、jcodeで変換する前の部分だったので、ダメだったんですね。(^_^;)
sjisの文字コードで指定した方法でやってみたところ、上手くいきました。
ありがとうございました。

しかし、これってもしUNIXユーザの人が書き込んだら、全角スペースは切り取られないということでしょうか?
EUCの方も書いておいたほうがいいのでしょうか?

文字コード表があるURLとかってないんでしょうか?
もし、ご存知でしたら教えていただけますでしょうか?

ご返答に、さらに質問してしまってすみません。
もし、よろしけれご返答いただければ、幸いです。

お礼日時:2001/03/01 15:51

\s は、「 」(スペース=半角スペース)ですので、



それを、「 」(全角スペース)に置きかえれば?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
私も同じことを考えてやってみたのですが、ダメだったのでした。(T_T)
しかし、別の方法で解決いたしました。
ご親切にありがとうございました。

お礼日時:2001/03/01 15:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!