日本站收货地址提交后 100% 报 postal_code invalid,用户填的 150-0002 被截成 150,错误提示指向都道府县。乍看像缓存或者权限的锅,追下去往往不是。
^(\d{3}-\d{4})$
^(\d{5})(-\d{4})?$
追下去是这么回事:表单把州、城市、街道按固定顺序拼成一行,邮编正则只认 5 位数字。日本地址从都道府县往下写,邮编是 7 位带连字符,字段顺序和格式都对不上。校验规则没有按国家分支。
「地址顺序本地化」这类改动最怕改一半,回滚脚本先准备好,再动生产。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。
能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。
具体做法是,按国家维护地址字段顺序和必填项 日本把邮编放最前;邮编校验按国家切换正则 日本允许 3 位加 4 位;拼接时用结构化字段 不要先拼字符串再拆;用日本真实地址和英文地址各提交一次。
验收就看一点,日本地址提交返回 200,邮编 150-0002 原样保存,英文地址校验不受影响。
