【问题标题】:if/else extracting part of a UK postcodeif/else 提取英国邮政编码的一部分
【发布时间】:2019-12-25 03:21:36
【问题描述】:

我正在尝试使用 if/else 从 javascript 中的完整邮政编码中提取英国邮政编码的第一部分

基本上,如果邮编是格式的话;

AB99 9CD需要返回AB

A9 9BC需要返回A

A99 9BC需要返回A

AB9C 9DE需要返回AB

我想试试

if (fieldname == LETTER1 LETTER2 NUM NUM NUM LETTER3 LETTER 4) 
    return LETTER 1 LETTER 2;

以此类推,然后使用 else 作为错误消息,以便它识别格式并返回前一个或两个字母,但不知道要使用什么代码。

【问题讨论】:

    标签: javascript if-statement


    【解决方案1】:

    根据英国邮政编码上的Wikipeda entry,以下正则表达式可用于验证英国邮政编码:

    ^[A-Z]{1,2}[0-9][A-Z0-9]? ?[0-9][A-Z]{2}$

    将它与捕获组一起使用,将为您提供英国邮政编码中外部组的“区域”部分:

    ("EC1A 1BB").match(/^([A-Z]{1,2})[0-9][A-Z0-9]? ?[0-9][A-Z]{2}$/)[1]
    // Gives "EC"
    

    【讨论】:

      【解决方案2】:

      您可以使用正则表达式来做到这一点:

      var str1 = 'AB99 9CD';
      var str2 = 'A9 9BC';
      var str3 = 'A99 9BC';
      var str4 = 'AB9C 9DE';
      
      var pattern = /^([a-zA-Z]+)/;
      
      console.log('Letters 1:', str1.match(pattern)[0]);
      console.log('Letters 2:', str2.match(pattern)[0]);
      console.log('Letters 3:', str3.match(pattern)[0]);
      console.log('Letters 4:', str4.match(pattern)[0]);

      ^ 意思是:开头。

      () 表示:一组。

      [a-zA-Z] 表示:接受字母字符。

      + 在这种情况下意味着:[] 中的所有内容都可以被接受一次或多次。

      【讨论】:

        【解决方案3】:

        首先使用函数 split("your criteria") 拆分您的地址。然后,检查第一个字符。如果是非数字,函数isNaN()

        function Verify(address) {
          var arrAdd = address.split(" ")
          
          if (isNaN(arrAdd[0][0])) {
            if (isNaN(arrAdd[0][1]))
              return arrAdd[0]
            else
              return arrAdd[0][0]
          }
        }
        
        console.log(Verify("A9 BBX"))

        【讨论】:

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