用于验证邮政编码格式的 dart 正则表达式

del*_*min 2 regex dart flutter

我正在尝试创建正则表达式来验证所有邮政编码格式。我找到了这个问题的答案What is the Ultimate Postal Code and zip regex? 但它在 Dart 中不起作用。以下是答案中的标准,这正是我正在寻找的

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

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

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

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

  5. 您应该留出一个空格或破折号。

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

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

Nut*_*uts 8

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

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