DoboWiki
Top
> 自由区/スパム対策/日本語かどうか調べる をテンプレートにして作成
自由区/スパム対策/日本語かどうか調べる をテンプレートにして作成
開始行:
*投稿されたメッセージが日本語かどうか調べる [#gf4cac63]
投稿されたメッセージに日本語が含まれているかを調べ、含ま...
**Perl [#b0245dda]
***Jcodeのgetcodeで調べる [#dbdde285]
Jcode.plまたは[[Jcode.pm>http://perldoc.jp/docs/modules/J...
Jcode.plを使って文字列がShift JISかどうか確かめる例を示し...
#code(perl){{
#調べる文字列
$msg = "あいうえお";
require './jcode.pl';
local($match, $code) = &jcode'getcode(*msg);
if ($code ne 'sjis')
{
print 'SJISではありません。';
exit;
}
}}
***ひらがな、カタカナが含まれているか調べる [#vdf17374]
Jcodeのgetcodeは結構重いので、ひらがなやカタカナが含まれ...
以下の例では、文字列がShift JISのときに、ひらがなやカタカ...
#code(perl){{
#調べる文字列
$msg = "あいうえお";
$in_hiragana = 0;
$in_katakana = 0;
if ($msg =~ /\x82[\x9F-\xF1]/)
{
#ひらがなが含まれている
$in_hiragana = 1;
}
if ($msg =~ /\x83[\x40-\x96]/)
{
#カタカナが含まれている
$in_katakana = 1;
}
if (!$in_hiragana && !$in_katakana)
{
print 'ひらがなもカタカナも含まれていません。';
exit;
}
}}
上記の例では、ひらがなでは、「ぁ」から「ん」までの間にあ...
EUCの場合は、正規表現パターンを以下のように変更します。
|文字コード|ひらがな|カタカナ|h
|Shift JIS|\x82[\x9F-\xF1]|\x83[\x40-\x96]|
|EUC|\xA4[\xA1-\xF3]|\xA5[\xA1-\xF6]|
私の経験では、このようにしても、日本語以外の言語(何語だ...
**PHP [#e21c94fe]
***mb_detect_encodingを使用する [#v3e2c7ae]
mb_detect_encodingを使用して、文字コードを判別することが...
#code(php){{
//調べる文字列
$msg = 'あいうえお';
if (mb_detect_encoding($msg) == 'ASCII')
{
exit('日本語ではありません。');
}
}}
***ひらがな、カタカナが含まれているか調べる [#u535dc2d]
これは、Perlで紹介した方法と同じです。
もしmb_eregやmb_ereg_matchが使えるのであれば、次のように...
#code(php){{
//調べる文字列
$msg = 'あいうえお';
$in_hiragana = FALSE;
$in_katakana = FALSE;
if (mb_ereg('[ぁ-ん]', $msg))
{
//ひらがなが含まれる
$in_hiragana = TRUE;
}
if (mb_ereg('[ァ-ヶ]', $msg))
{
//カタカナが含まれる
$in_katakana = TRUE;
}
if (!$in_hiragana && !$in_katakana)
{
exit('ひらがなもカタカナも含まれません。');
}
}}
もしこれらが使えないのであれば、Perlの例と同じように、ere...
#code(php){{
//調べる文字列
$msg = 'あいうえお';
$in_hiragana = FALSE;
$in_katakana = FALSE;
if (preg_match('/\x82[\x9F-\xF1]/', $msg))
{
//ひらがなが含まれる
$in_hiragana = TRUE;
}
if (preg_match('/\x83[\x40-\x96]/', $msg))
{
//カタカナが含まれる
$in_katakana = TRUE;
}
if (!$in_hiragana && !$in_katakana)
{
exit('ひらがなもカタカナも含まれません。');
}
}}
**ASP.NET [#aa8c7cc6]
***ひらがな、カタカナが含まれているか調べる [#ua154811]
ASP.NETでも、PerlやPHPと基本的には同じ方法でできます。
VB.NET
#code(vbnet){{
Dim inHiragana As Boolean = False
Dim inKatakana As Boolean = False
If System.Text.RegularExpressions.Regex.IsMatch(TextBox1....
'ひらがなが含まれている
inHiragana = True
End If
If System.Text.RegularExpressions.Regex.IsMatch(TextBox1....
'カタカナが含まれている
inKatakana = True
End If
If Not inHiragana And Not inKatakana Then
Label1.Text = "ひらがなもカタカナも含まれていません。"
Return
End If
}}
C#
#code(csharp){{
bool inHiragana = false;
bool inKatakana = false;
if (System.Text.RegularExpressions.Regex.IsMatch(TextBox1...
{
//ひらがなが含まれている
inHiragana = true;
}
if (System.Text.RegularExpressions.Regex.IsMatch(TextBox1...
{
//カタカナが含まれている
inKatakana = true;
}
if (!inHiragana && !inKatakana)
{
Label1.Text = "ひらがなもカタカナも含まれていません。";
return;
}
}}
.NETではさらにUnicodeのブロック名を使用することもできます...
VB.NET
#code(vbnet){{
Dim inHiragana As Boolean = False
Dim inKatakana As Boolean = False
If System.Text.RegularExpressions.Regex.IsMatch(TextBox1....
'ひらがなが含まれている
inHiragana = True
End If
If System.Text.RegularExpressions.Regex.IsMatch(TextBox1....
'カタカナが含まれている
inKatakana = True
End If
If Not inHiragana And Not inKatakana Then
Label1.Text = "ひらがなもカタカナも含まれていません。"
Return
End If
}}
C#
#code(csharp){{
bool inHiragana = false;
bool inKatakana = false;
if (System.Text.RegularExpressions.Regex.IsMatch(TextBox1...
{
//ひらがなが含まれている
inHiragana = true;
}
if (System.Text.RegularExpressions.Regex.IsMatch(TextBox1...
{
//カタカナが含まれている
inKatakana = true;
}
if (!inHiragana && !inKatakana)
{
label1.Text = "ひらがなもカタカナも含まれていません。";
return;
}
}}
//これより下は編集しないでください
#pageinfo([[:Category/インターネット]],2007-05-12 (土) 01...
終了行:
*投稿されたメッセージが日本語かどうか調べる [#gf4cac63]
投稿されたメッセージに日本語が含まれているかを調べ、含ま...
**Perl [#b0245dda]
***Jcodeのgetcodeで調べる [#dbdde285]
Jcode.plまたは[[Jcode.pm>http://perldoc.jp/docs/modules/J...
Jcode.plを使って文字列がShift JISかどうか確かめる例を示し...
#code(perl){{
#調べる文字列
$msg = "あいうえお";
require './jcode.pl';
local($match, $code) = &jcode'getcode(*msg);
if ($code ne 'sjis')
{
print 'SJISではありません。';
exit;
}
}}
***ひらがな、カタカナが含まれているか調べる [#vdf17374]
Jcodeのgetcodeは結構重いので、ひらがなやカタカナが含まれ...
以下の例では、文字列がShift JISのときに、ひらがなやカタカ...
#code(perl){{
#調べる文字列
$msg = "あいうえお";
$in_hiragana = 0;
$in_katakana = 0;
if ($msg =~ /\x82[\x9F-\xF1]/)
{
#ひらがなが含まれている
$in_hiragana = 1;
}
if ($msg =~ /\x83[\x40-\x96]/)
{
#カタカナが含まれている
$in_katakana = 1;
}
if (!$in_hiragana && !$in_katakana)
{
print 'ひらがなもカタカナも含まれていません。';
exit;
}
}}
上記の例では、ひらがなでは、「ぁ」から「ん」までの間にあ...
EUCの場合は、正規表現パターンを以下のように変更します。
|文字コード|ひらがな|カタカナ|h
|Shift JIS|\x82[\x9F-\xF1]|\x83[\x40-\x96]|
|EUC|\xA4[\xA1-\xF3]|\xA5[\xA1-\xF6]|
私の経験では、このようにしても、日本語以外の言語(何語だ...
**PHP [#e21c94fe]
***mb_detect_encodingを使用する [#v3e2c7ae]
mb_detect_encodingを使用して、文字コードを判別することが...
#code(php){{
//調べる文字列
$msg = 'あいうえお';
if (mb_detect_encoding($msg) == 'ASCII')
{
exit('日本語ではありません。');
}
}}
***ひらがな、カタカナが含まれているか調べる [#u535dc2d]
これは、Perlで紹介した方法と同じです。
もしmb_eregやmb_ereg_matchが使えるのであれば、次のように...
#code(php){{
//調べる文字列
$msg = 'あいうえお';
$in_hiragana = FALSE;
$in_katakana = FALSE;
if (mb_ereg('[ぁ-ん]', $msg))
{
//ひらがなが含まれる
$in_hiragana = TRUE;
}
if (mb_ereg('[ァ-ヶ]', $msg))
{
//カタカナが含まれる
$in_katakana = TRUE;
}
if (!$in_hiragana && !$in_katakana)
{
exit('ひらがなもカタカナも含まれません。');
}
}}
もしこれらが使えないのであれば、Perlの例と同じように、ere...
#code(php){{
//調べる文字列
$msg = 'あいうえお';
$in_hiragana = FALSE;
$in_katakana = FALSE;
if (preg_match('/\x82[\x9F-\xF1]/', $msg))
{
//ひらがなが含まれる
$in_hiragana = TRUE;
}
if (preg_match('/\x83[\x40-\x96]/', $msg))
{
//カタカナが含まれる
$in_katakana = TRUE;
}
if (!$in_hiragana && !$in_katakana)
{
exit('ひらがなもカタカナも含まれません。');
}
}}
**ASP.NET [#aa8c7cc6]
***ひらがな、カタカナが含まれているか調べる [#ua154811]
ASP.NETでも、PerlやPHPと基本的には同じ方法でできます。
VB.NET
#code(vbnet){{
Dim inHiragana As Boolean = False
Dim inKatakana As Boolean = False
If System.Text.RegularExpressions.Regex.IsMatch(TextBox1....
'ひらがなが含まれている
inHiragana = True
End If
If System.Text.RegularExpressions.Regex.IsMatch(TextBox1....
'カタカナが含まれている
inKatakana = True
End If
If Not inHiragana And Not inKatakana Then
Label1.Text = "ひらがなもカタカナも含まれていません。"
Return
End If
}}
C#
#code(csharp){{
bool inHiragana = false;
bool inKatakana = false;
if (System.Text.RegularExpressions.Regex.IsMatch(TextBox1...
{
//ひらがなが含まれている
inHiragana = true;
}
if (System.Text.RegularExpressions.Regex.IsMatch(TextBox1...
{
//カタカナが含まれている
inKatakana = true;
}
if (!inHiragana && !inKatakana)
{
Label1.Text = "ひらがなもカタカナも含まれていません。";
return;
}
}}
.NETではさらにUnicodeのブロック名を使用することもできます...
VB.NET
#code(vbnet){{
Dim inHiragana As Boolean = False
Dim inKatakana As Boolean = False
If System.Text.RegularExpressions.Regex.IsMatch(TextBox1....
'ひらがなが含まれている
inHiragana = True
End If
If System.Text.RegularExpressions.Regex.IsMatch(TextBox1....
'カタカナが含まれている
inKatakana = True
End If
If Not inHiragana And Not inKatakana Then
Label1.Text = "ひらがなもカタカナも含まれていません。"
Return
End If
}}
C#
#code(csharp){{
bool inHiragana = false;
bool inKatakana = false;
if (System.Text.RegularExpressions.Regex.IsMatch(TextBox1...
{
//ひらがなが含まれている
inHiragana = true;
}
if (System.Text.RegularExpressions.Regex.IsMatch(TextBox1...
{
//カタカナが含まれている
inKatakana = true;
}
if (!inHiragana && !inKatakana)
{
label1.Text = "ひらがなもカタカナも含まれていません。";
return;
}
}}
//これより下は編集しないでください
#pageinfo([[:Category/インターネット]],2007-05-12 (土) 01...
ページ名:
▲
▼
[
トップ
] [
新規
|
子ページ作成
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]