PHPで住所の町名番地の入力について番地まで入力されているかを正規表現でチェックしたい

予算
千円
〜
3千円
納品希望日
ご相談
募集期限
募集終了 締切日 2020年12月29日 /
掲載日 2020年12月28日
応募状況
応募人数 3
契約人数 2
閲覧数 125
用途・種類
Webシステム開発・サイト構築
対応範囲
相談して決めたい
用意してあるもの
ー
開発言語
PHP、HTML/CSS

募集内容

依頼の概要・目的・背景
いつもありがとうございます。 ECサイトをPHP/MySQL/Smarty/HTML/CSSで開発し運用しております。 お客様に商品配送先の住所を入力いただく画面で、 住所の入力を下記のinputフォームに分けて受け付けております。 ・郵便番号 ・都道府県 ・市区町村 ・町名番地 ・建物・マンション名 ※郵便番号が入力されると、「町名番地」の町名までが自動入力されるようにしております。 町名番地が同じ欄になっておりますので、 番地の入力漏れを防ぐため、下記の正規表現でPHP側で入力値をチェックし、 もし町名までしか入っておらず、番地(全角または半角の数字)が未入力の場合は、 エラーを出すようにしております。 //町名番地の書式をチェック if ($member_address1) { if (! preg_match("/^.*[0-90-9]/", $member_address1)) { $smarty->assign("member_address1_format_error", 1); $smarty->assign("error", 1); } } しかし確認してみたところ、番地(全角または半角の数字)が未入力のままでも、 通ってしまっているケースがあるようなのです。 例えば町名が「谷町」などの場合、そこで入力が終わってしまっていると、 上記の正規表現で書式エラーとなるのですが、 町名が「千石」などの場合、なぜかその後の番地(全角または半角の数字)が、 未入力のままでも通ってしまうようなのです。 もし上記の正規表現の記述に問題がありましたら、 改善のアドバイスをいただくことは可能でしょうか? どのように正規表現を記述しても抜けのパターンが発生するようであれば、 町名と番地の入力欄を分けることで対策したいと思います。 なお誠に勝手を申し上げますが、予算の都合上、 ご提案を採用させていただく場合は、1名の方のみとさせていただけましたらと思います。 ご検討よろしくお願いいたします。
添付ファイル
ー
参考URL
ー
求めるスキル
ー
特記事項
ー

応募者一覧

応募者
応募日時
TM10
2020/12/28 08:10
森下けんいち
2020/12/28 09:37
_こーたろ_
2020/12/28 12:03

募集内容についての質問

質問と回答の履歴

森下けんいち
森下けんいち
3年以上前
if (! preg_match("/^.*[0-90-9]/", $member_address1)) { [0-90-9]と、ハイフンが全角になっていますが、ここへ 記述したときのミスでしょうか?
osamuuk
osamuuk
3年以上前
ご指摘いただきありがとうございます! 確認したところ、コピペ時のミスではなく、PHPのソース上でも[0-90-9]とハイフンが全角になっておりました。
募集終了
ブックマーク
予算
千円
〜
3千円
募集終了

募集者情報

osamuuk
osamuuk
5.0 (16)
9
発注件数
70%
発注率
100%
取引完了率
認証状況
本人確認
機密保持契約(NDA)

この募集内容に似ている仕事

予算
3万円
〜
5万円
応募者数 116
募集期限 あと 3 日 (9月28日まで)
user
mitsujiro
投稿日時:3日前
予算
見積り希望
応募者数 59
募集期限 あと 9 日 (10月4日まで)
user
Mauna0227
投稿日時:4日前