

ユーザーが住所入力する際に番地の数字漏れを防ぐため  
正規表現で 数字と漢字が入力必須条件の書き方を教えて欲しいです。

下記のコードで試しましたが漢字だけでも入力可能なため困っています。

^[0-9一-龠]*$


CC BY-SA 4.0
2023-02-11T14:43:29.643
93800
2023-02-12T07:27:01.223
57060
question
正規表現
正規表現で 数字と漢字が入力必須条件の書き方を教えて欲しい


>
[code]

>     ^[0-9一-龠]*$
>  
[/code]

「漢字」の指定が`一-龠`でよいかは一旦おいておきます。(結局意味ないので)

数字と漢字がそれぞれ少なくとも1回現れないといけない、という条件であれば、例えば

[code]

    [一-龠].*[0-9]
    
[/code]

ですかね。(数字-漢字の順に対応できませんが、住所なのでいきなり数字ってことはない前提)

さて本題は

> 住所入力する際に番地の数字漏れを防ぐ

だと思うのですが、正規表現でのチェックは無駄に厳しくなるかさもなくばザルになるかどっちかなのであまり意味がないです。

例えば上記だと数字をいわゆる「全角」で書かれるとマッチしません。全角数字を条件に入れると、地名そのものに全角数字が入ってるとチェックを通ってしまい入力漏れは防げません。  
さらに、世の中には番地がない住所も存在します。

入力漏れが問題なのであれば、文字種のチェックよりもUIを工夫したほうがよいでしょう。が、これはこれでいろいろ大変です。番地欄分けたら分けたでそれによって入力漏れを誘発するとか。

ユーザビリティ含めて考えると住所の入力というのは実はかなり難易度が高い課題ですので、きちんと考えられた方がよいです。


CC BY-SA 4.0
2023-02-12T04:33:03.397
93807
2023-02-12T07:27:01.223
2023-02-12T07:27:01.223
5793
5793
93800
answer