You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

城市与街道验证正则表达式不符合预期,需强制逗号后非空

修改后的正则表达式解决方案

修正后的正则

^[a-zA-Z0-9 -]+,\s*(?:[a-zA-Z0-9 .-][a-zA-Z0-9 .-,]*)(?:\n[a-zA-Z0-9 -]+,\s*(?:[a-zA-Z0-9 .-][a-zA-Z0-9 .-,]*))*$

改动说明

原正则允许逗号后仅输入空格的核心问题是:街道部分的[a-zA-Z0-9 .-]+包含空格,且前面的[^S\n]*可匹配任意非S/换行字符(含全空格),导致纯空格内容被判定为合法。修正点如下:

  • 将逗号后的任意字符匹配[^S\n]*替换为明确的空格匹配\s*,缩小匹配范围避免歧义
  • 把街道部分的[a-zA-Z0-9 .-]+调整为(?:[a-zA-Z0-9 .-][a-zA-Z0-9 .-,]*):
    • 前置[a-zA-Z0-9 .-]强制要求逗号后至少存在一个非空格的有效字符,直接杜绝纯空格的非法输入
    • 后置[a-zA-Z0-9 .-,]*允许后续出现空格、逗号及其他合法字符,兼容你列出的City-A, Street,这类以逗号结尾的合法场景
  • 对换行分隔的每一行条目应用相同规则,确保所有输入行都符合校验要求

合法输入验证

你提供的所有示例输入均可被该正则正确匹配:

  • City-A, Street-B
  • City, Street
  • City, Street-A
  • City-A, Street,
  • City, ul. Street
  • City, ul.Street

而类似City, (逗号后仅空格)的非法输入会被直接拒绝。

内容的提问来源于stack exchange,提问作者Reddi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:55:22