代码之家  ›  专栏  ›  技术社区  ›  tomatito

使用javascript检查当前字段值是否为欧元、美元…

  •  -1
  • tomatito  · 技术社区  · 6 年前

    我想用regexp检查接收的字段值是一个包含3个字符的字符串,表示如下所示的货币:

    EUR
    USD
    JPY
    RUB
    .
    .
    

    我有这个功能来检查它是否只是一个数字。

    const onlyInteger = (oldValue, value) => {
      oldValue = '';
      if (value && String(value).trim().match(/^[+-]?\d+$/i)) {
        return value;
      }
      return oldValue;
    }
    

    类似于此函数,用于检查用户是否最多写入三个字符。

    2 回复  |  直到 6 年前
        1
  •  3
  •   Bohemian    6 年前

    要验证字符串是否为货币:

    str.match(/^(EUR|USD|JPY|RUB)$/)
    

    要验证是否有(任何)3个大写字母:

    str.match(/^[A-Z]{3}$/)
    
        2
  •  0
  •   Ivan Jeffrey Zhao    6 年前

    您可以检查字符串是否只包含大写字母,并使用下面的正则表达式测试:

    /^[A-Z]+$/.test(value)
    

    在哪里? value 是要测试的字符串。

    还可以通过访问字符串来检查字符串是否包含三个字符。 length 属性并确保它等于 3 :

    value.length == 3
    

    在下面的代码中 isCurrency 将返回 true 如果 价值 是一个三个字母的单词。否则它会回来的 false

    const isCurrency = (value) => (/^[A-Z]+$/.test(value) && value.length == 3)
    
    console.log(isCurrency('EUR'))
    console.log(isCurrency('E1UR'))
    console.log(isCurrency('EuR'))