matttsu回答ポイント 100ptウォッチ 1

TomcatでWebから入力された文字列をJavaで半角文字以外の文字列が入ってるかチェックしたいと思います。

やり方はいろいろ考えられるのですが(Byteでチェックとか)どれが一番standardなんでしょう?
日本語だけの問題?だからかあまりこれだっていうやり方が無い気がしたので・・。これ以外はcommonsのLangなどを参考に出来るんですが。
これが一番無難じゃないかという方法があれば教えてください。ただしJavaScriptやVBScriptなどJava以外のやり方は対象外でお願いします。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

java.lang.Character.UnicodeBlock

oldriver2006-05-11 20:04:59

半角がいわゆるASCII文字の範囲ならjava.lang.Character.UnicodeBlock クラスで文字の種類を(BASIC_LATINかどうか)判別するのがキレイな方法かなと思います。

ただ、半角カナと全角英数は同じUnodeブロックに入ってるのでこの方法では判別できませんね。

質問

matttsu2006-05-11 15:29:45

正規表現は確かに有効な方法だと思います。

ただ全角文字以外という条件のため

「必要な分列挙」ってのが大変かなと・・・。

こういう日本語のためのライブラリとかが用意されていればなぁ。

アメリカでも全角文字が使われてたら絶対CommonsのLangとかに含まれてそうですが。

みなさん、必要になったらそのたびコーディングしてるんでしょうか?

かなり需要がありそうな関数だと思うのですが・・。

正規表現は?

tadashi08052006-05-11 15:21:16

記号が含まれると、正規表現パターンを作るのが面倒ですが、半角英数だけなら[¥p{Alnum}]+とかの正規表現の否定でjava.util.regex()でマッチさせれば、半角英数以外の文字が入っているかどうかがわかると思います。

半角記号がOKでも、必要な分列挙すれば、一応表現できますね。

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2006-05-11 14:53:28
終了日時
2006-05-18 14:55:05
回答条件
1人5回まで 100 ptで終了

この質問のカテゴリ

この質問に含まれるキーワード

VBScript158JavaScript2781Tomcat209Java1731commons22

人気の質問

メニュー

PC版