■ BBS_4WORLD= 2ch国際化計画

このエントリーをはてなブックマークに追加
62ピロリ
ダンプモードとか作るかねぇ

ちなみに作るときに参考にしたSJIS文字コード表
http://ash.jp/code/codetbl2.htm
63動け動けウゴウゴ2ちゃんねる:2008/05/09(金) 17:46:26 ID:zxvkPlab0
おいちゃん、>>13みたいに senji も正規表現晒したらどうすか?
つーか、senji は JIS X 0213 を使いたい人もいそうな気がする。

いちおう参考。
ttp://www.din.or.jp/~ohzaki/perl.htm#Character
64ピロリ:2008/05/09(金) 17:48:22 ID:hr4+oABy0
もってくるー
65ピロリ:2008/05/09(金) 17:49:10 ID:hr4+oABy0
これ

if($FOX->{$GB->{FORM}->{bbs}}->{'BBS_4WORLD'} eq "senji")
{
my $a = $GB->{FORM}->{'MESSAGE'} . $GB->{FORM}->{'subject'} ;
$a =~ s/>>[0-9\-,]+//g ; # >>23とか
$a =~ s/!vip2:stop://g ; # !vip2:stop:!vip2:heal:
$a =~ s/!vip2:heal://g ; # !vip2:stop:
$a =~ s/[\x88-\x9F][\x40-\x7F]//g ; #漢字a
$a =~ s/[\xE0-\xFF][\x40-\x7F]//g ; #漢字b
$a =~ s/[\x88-\x9F][\x80-\xFF]//g ; #漢字A
$a =~ s/[\xE0-\xFF][\x80-\xFF]//g ; #漢字B
$a =~ s/[\x81][\x40-\xFF]//g ; #いろいろ記号
$a =~ s/[\x83][\x40-\x9F]//g ; #カタカナ
$a =~ s/http:\/\/[a-zA-Z0-9.,_\/]+//g ; #URL
$a =~ s/<br>//g ;
$a =~ s/ //g ;
$a =~ s/ //g ;
if($a ne '') {&DispError2($GB,"ERROR!","漢字とカタカナしか受け付けていません"); }
}
66動け動けウゴウゴ2ちゃんねる:2008/05/09(金) 18:10:06 ID:zxvkPlab0
とりあえずテスト。思いきり>>57>>59>>61どおりになりますよー。
ごにょごにょしてみようかな。

my @test = qw(
成ル程
♪こ♪う♪す♪る♪と♪ひ♪ら♪が♪な♪も♪つ♪か♪え♪る
其ノ者 青キ衣ヲ纏イテ金色ノ野ニ降リ立ツベシ
);

foreach (@test) {
print $_, "\n\t";
print SenjiCheck($_) ? '可。' : '死ネ。氏ネヂヤナクテ死ネ。', "\n";
}

sub SenjiCheck {
my $str = shift;
$str =~ s/>>[0-9\-,]+//g ; # >>23とか
$str =~ s/!vip2:stop://g ; # !vip2:stop:!vip2:heal:
$str =~ s/!vip2:heal://g ; # !vip2:stop:
$str =~ s/[\x88-\x9F][\x40-\x7F]//g ; #漢字a
$str =~ s/[\xE0-\xFF][\x40-\x7F]//g ; #漢字b
$str =~ s/[\x88-\x9F][\x80-\xFF]//g ; #漢字A
$str =~ s/[\xE0-\xFF][\x80-\xFF]//g ; #漢字B
$str =~ s/[\x81][\x40-\xFF]//g ; #いろいろ記号
$str =~ s/[\x83][\x40-\x9F]//g ; #カタカナ
$str =~ s/http:\/\/[a-zA-Z0-9.,_\/]+//g ; #URL
$str =~ s/<br>//g ;
$str =~ s/ //g ;
$str =~ s/ //g ;

return ($str eq '');
}
67動け動けウゴウゴ2ちゃんねる:2008/05/09(金) 18:13:42 ID:a6ga1XJF0
>>65

>>57
成  ル  程
90A2 838B 92F6
 ↓
$a =~ s/[\x88-\x9F][\x80-\xFF]//g ; #漢字A
 ↓
____ 83__ __F6
 ↓
拾えないゴミ残る
68ピロリ:2008/05/09(金) 18:14:39 ID:hr4+oABy0
さぁ 老戦士(sjisの達人)たちよ頑張るんだ !!
69動け動けウゴウゴ2ちゃんねる:2008/05/09(金) 18:17:06 ID:UgnEJUrB0
リ立
がだめっぽい>>61
70動け動けウゴウゴ2ちゃんねる:2008/05/09(金) 18:20:25 ID:zxvkPlab0
SJIS(CP932) なんて Perl/PHP で扱うときにめんどくさいからわかんないんです><
71動け動けウゴウゴ2ちゃんねる:2008/05/09(金) 18:23:50 ID:wIejFLim0
2バイト文字のばかやろー
72動け動けウゴウゴ2ちゃんねる:2008/05/09(金) 18:24:57 ID:a6ga1XJF0
>>69
ここで16進数にしてみた
http://www.ahref.org/cgi/mozicode/

「リ 83 8a」
「立 97 a7」

8a97 なんで、>>67 の理由でダメ
73動け動けウゴウゴ2ちゃんねる:2008/05/09(金) 18:33:11 ID:zxvkPlab0
手抜き。

sub SenjiCheck {
my $str = shift;
$str =~ s/>>[0-9\-,]+//g ; # >>23とか
$str =~ s/!vip2:stop://g ; # !vip2:stop:!vip2:heal:
$str =~ s/!vip2:heal://g ; # !vip2:stop:
# 順繰りにやるから悲しいことが起きるのです。
$str =~ s/(\x81[\x40-\xFF]|\x83[\x40-\x9F]|[\x88-\x9F][\x40-\xFF]|[\xE0-\xFF][\x40-\xFF])+//g; #(カタカナ|いろいろ記号|漢字aA|漢字bB)+
$str =~ s/http:\/\/[a-zA-Z0-9.,_\/]+//g; #URL
$str =~ s/<br>//g;
$str =~ s/ //g;
$str =~ s/ //g;

return ($str eq '');
}

>>57>>59>>61>>69のクリアに限り、確認済み。
74ピロリ:2008/05/09(金) 18:34:21 ID:hr4+oABy0
$str =~ s/(\x81[\x40-\xFF]|\x83[\x40-\x9F]|[\x88-\x9F][\x40-\xFF]|[\xE0-\xFF][\x40-\xFF])+//g; #(カタカナ|いろいろ記号|漢字aA|漢字bB)+

ここだけ変えればいいの?