電子書籍の厳選無料作品が豊富!

正規表現を使って、掲示板などで「ひらがな1字のみ」の記述を制限しようと思うのですが、どうもうまくいきません。

if ($comment =~ m/^[あいうえお…わをん]$/) {}

こんなことをしてもみたんですがやっぱりだめでした…
どうすればいいのでしょう。
教えてください。

A 回答 (3件)

 僭越ながら修正をば。



 #1の方の方法を試しましたが、うまくいきませんでした。
 #2の方の方法ならおそらくうまくいきますが、もっとスマートな方法があります。

 if ( $comment =~ /^\x82[\x9f-\xf1]$/ ) { ...

 これだと、ひらがなのみがチェックの対象になります。
 カタカナの場合は、

 if ( $comment =~ /^\x83[\x40-\x96]$/ ) { ...

 です。
    • good
    • 0
この回答へのお礼

x82やx9fとかがいまいち分からないのですが、この方法だとカタカナまで一気にできちゃうんですね。
「あ」から「ん」まで全部書かないでいい方法はないのかなと思っていましたが、勉強になりました。
ありがとうございました。

お礼日時:2002/08/31 23:07

if($comment =~ m/^(あ|い|う|え|お<略>|わ|を|ん)$/) {}



でどうでしょう?
    • good
    • 0
この回答へのお礼

ははぁー。
グルーピングという方法がありましたか。
思いつきませんでした。
どうもありがとうございます。

お礼日時:2002/08/31 23:04

if ($comment =~ m/^[あ-ん]$/)


のようにすれば大丈夫では?
[\x84\xbf-\x88\x9f]だと、2バイトコードを拾ってくれるそうです。
    • good
    • 0
この回答へのお礼

[あ-ん]ではうまくいきませんでした。
ある正規表現の本では、そうするためにはjperlが必要がどうとか…

回答いただきどうもありがとうございました。

お礼日時:2002/08/31 23:02

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