- - PR -
漢字(JIS第一水準, JIS第ニ水準のみ)の正規表現について [C#.NET]
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-07-12 19:39
現在、入力チェック(正規表現)で、
以下の文字以外はエラーにするような制限をかけています。 (というか、するようにしてくれとお客から言われてしまったので・・・) 全角スペース、記号類(但し¢£¬を除く)、数字、アルファベット、ひらがな、カタカナ、 ギリシャ文字、ロシア文字、罫線用文字、漢字(JIS第一水準, JIS第ニ水準のみ) しかし、"東京都"や"神奈川県"という住所などで、 必ずエラーとして帰ってきます。 原因は、漢字(JIS第一水準, JIS第ニ水準)で引っかかっていると思われるのですが、 この場合、何かよい対処法はあるのでしょうか? もし、お判りになる方がいらっしゃったら、是非!教えていただけますでしょうか。 宜しくお願い致します。 [ソース] public string CheckZenCheck_ToshibaDM( string strValue, string strErrMsg ) { string strReturnValue = String.Empty; if( strValue.Trim() != "" ) { Regex objRegex = new Regex("^[亜-熙α-ωΑ-Ωぁ-んァ-ヶa-zA-Z0-9АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\〜‖|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+−±×÷=≠<>≦≧∞∴♂♀°′″℃¥$%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓∈∋⊆⊇⊂⊃∪∩∧∨⇒⇔∀∃∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬ʼn♯♭♪†‡¶◯]+$"); if( !objRegex.IsMatch( strValue.Trim() ) ) { strReturnValue = strErrMsg; } } return strReturnValue; } |
|
投稿日時: 2004-07-12 22:35
>原因は、漢字(JIS第一水準, JIS第ニ水準)で引っかかっていると思われるのですが
根拠は? 本当にそこで引っかかっているか確認しましたか? C#.NETでは、文字はUnicodeで扱われます。 JIS水準の順番で並んでいるわけではありません。 まずは「東京都」「神奈川県」の各文字と、 正規表現中の'亜'と'熙'を数値型に直して、 値を確認してみてはいかがでしょう。 (脱線) ところでこれはお仕事で書いているコードでしょうか。 固有名詞が入っているようなものをそのまま貼るのはどうかと…。 |
1