首页 > 解决方案 > 用于验证邮政编码格式的 dart 正则表达式

问题描述

我正在尝试创建正则表达式来验证所有邮政编码格式。我找到了答案什么是最终的邮政编码和 zip 正则表达式?但它在飞镖中不起作用。以下是答案中的标准,这正是我正在寻找的

  1. 每个邮政编码系统仅使用 AZ 和/或 0-9,有时使用空格/破折号

  2. 并非每个国家/地区都使用邮政编码(例如都柏林以外的爱尔兰),但我们将在这里忽略它。

  3. 最短的邮政编码格式是带有 NN 的塞拉利昂

  4. 最长的是美属萨摩亚,有 NNNNN-NNNNNN

  5. 您应该允许一个空格或破折号。

  6. 不应以空格或破折号开头或结尾

这是我需要转换为飞镖的正则表达式(?i)^[a-z0-9][a-z0-9\- ]{0,10}[a-z0-9]$

标签: regexflutterdart

解决方案


bool isZipValid = RegExp(r"^[a-z0-9][a-z0-9\- ]{0,10}[a-z0-9]$", caseSensitive: false).hasMatch(zip);

(?i)(不区分大小写模式)是罪魁祸首FormatException: Illegal RegExp pattern


推荐阅读