我正在尝试创建正则表达式以验证所有邮政和邮政编码格式。我找到了这个What is the ultimate postal code and zip regex?的答案,但是在dart中不起作用。这是答案中的标准,正是我所寻找的

  • 每个邮政编码系统仅使用A-Z和/或0-9,有时使用空格/破折号
  • 并非每个国家都使用邮政编码(例如都柏林以外的爱尔兰),但是我们在这里将忽略它。
  • 邮政编码最短的格式是塞拉利昂,带有NN
  • 最长的是美属萨摩亚,拥有NNNNN-NNNNNN
  • 您应该允许一个空格或破折号。
  • 不应以空格或破折号开头或结尾

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

    最佳答案

    bool isZipValid = RegExp(r"^[a-z0-9][a-z0-9\- ]{0,10}[a-z0-9]$", caseSensitive: false).hasMatch(zip);
    
    (?i)(不区分大小写的模式)是FormatException: Illegal RegExp pattern的罪魁祸首

    关于regex - dart regex,用于验证邮政编码格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62471279/

    10-11 01:15