【问题标题】:Validating string against predefined formats in JavaScript (postal codes)根据 JavaScript 中的预定义格式验证字符串(邮政编码)
【发布时间】:2016-10-19 20:13:18
【问题描述】:

不确定这有多容易,但也许你们中的一些人可以提供帮助。

我有一个文件,其中包含不同国家/地区可接受的邮政编码格式。

下面的例子是针对美国的,它是这样列出的:

    COUNTRY CODE |     FORMAT    | # OF CHARS TO VALIDATE
     US          |   99999-9999  | 5 |
     US          |   999999999   | 5 |
     US          |   99999       | 5 |

(注意:我添加了一个标题和额外的空格以使其更具可读性)。

对于英国等使用 ALPHA NUMERIC 邮政编码的国家/地区,情况会变得更加复杂,如下所示:

    COUNTRY CODE |     FORMAT    | # OF CHARS TO VALIDATE
    GB           |     A9 9AA    | 4 |
    GB           |     AA9A9AA   | 5 |
    GB           |     AA9A 9AA  | 6 |
    GB           |     AA99AA    | 4 |
    GB           |     AA999AA   | 5 |
    GB           |     AA99 9AA  | 6 |
    GB           |     AA9 9AA   | 5 |
    GB           |     A9A9AA    | 4 |
    GB           |     A9A 9AA   | 5 |
    GB           |     A99AA     | 3 |
    GB           |     A999AA    | 4 |
    GB           |     A99 9AA   | 5 |

因此,基本上我需要做的是获取从 USER 输入的邮政编码,并根据我对该国家/地区接受的格式进行验证。

老实说,我不知道该怎么做,我想知道 JavaScript 是否可以实现。

有什么建议和想法吗?

提前谢谢你。

【问题讨论】:

  • 我想我需要将所有可用的格式放在一个数组中并以这种方式进行验证。只是不确定JS是否可以在不使用正则表达式的情况下进行验证。 :(

标签: javascript regex validation country-codes


【解决方案1】:

您需要使用正则表达式,这将是最有效的方式。如果您将所有可用格式放入一个数组中并按照评论中的建议进行检查,那么您将遇到问题,因为它将检查长度而不是其中的字符模式。

你可以在不使用正则表达式的情况下列出所有邮政编码并在 JS 中检查这些邮政编码,但这比听起来更糟糕。可以用来检查一些项目,邮政编码非常糟糕。

Regex 是您完成这项任务的好朋友。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    相关资源
    最近更新 更多