【问题标题】:JavaScript regex to validate postal code or City用于验证邮政编码或城市的 JavaScript 正则表达式
【发布时间】:2017-08-08 14:31:40
【问题描述】:

我想对名为“城市或邮政编码”的输入字段进行客户端验证,我对用户输入有单独的验证。我首先区分输入是数字还是字符串,然后有单独的块来验证它们。我想知道是否有一种优雅的方式,或者换句话说,一个正则表达式来验证输入

    validateCityOrPostalCode(value) {
    const isnum = /^\d+$/.test(value);
    if (isnum) {
      const patternForZipCode = RegExp('^[0-9]{5}$');
      const result = patternForZipCode.test(value);
      return result;
    }
    const onlyLetters = RegExp('^[a-zA-Z ]$').test(value);
    if (onlyLetters) {
      const patternForCity = RegExp('^([a-zA-Z -]{1,50})$');
      const validCityName = patternForCity.test(value);
      return validCityName;
    }
  }

我打算做什么

validateCityOrPostalCode(value) {
const patternForCityOrPostalCode = '<The regex that I am looking for >'
const result = patternForCityOrPostalCode.test(value);
return result;
}

有效案例: 5 位邮政编码,如 10016、12345、44444 等(5 位数字) 'New York'、'Boston'、'Chicago'、xx、xxxx 等城市(1 到 50 个字符)

无效案例: 1234 123 12 1 空字符串 波士顿33 333芝加哥

【问题讨论】:

    标签: javascript regex validation


    【解决方案1】:

    您可以在正则表达式中使用管道,其作用类似于 OR。

    示例 sn-p:

    function validateCityOrPostalCode(value) {
      return /^([0-9]{5}|[a-zA-Z][a-zA-Z ]{0,49})$/.test(value);
    }
    
    var values = ['12345','New York','1234','','     ','Boston33','333Chicago'];
    
    values.forEach(
      function(value) {
         console.log(value +":"+ validateCityOrPostalCode(value));
    });

    【讨论】:

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