【问题标题】:Currency / Percent Regular Expression货币/百分比正则表达式
【发布时间】:2011-11-15 03:44:07
【问题描述】:

我必须匹配像

这样的值
€ 6.483,00

或类似的值

18,50%  

或者,再次,

+65,86 %

在一个 Javascript 函数中,我将其起草为:

function(s) {
  return /^[0-9]?[0-9,\.]*$/.test(s);
}

但是,显然,它不起作用......应该如何改变它?

【问题讨论】:

标签: javascript regex currency


【解决方案1】:
^(?:€|\+)?\s*\d+(?:\.?\d{3})*(?:,\d+)?\s*%?\s*$

here on Regexr

字符串的开头,可选的€或+,然后是可选的空格,然后在列表中应该有一个数字,然后是一个可选的点和三个数字,然后是一个可选的分数,可选的空格,可选的%更多可选的空格和然后是字符串的结尾,

【讨论】:

    【解决方案2】:
    var sample = [
        "€ 6.483,00",
        "18,50%",
        "+65,86 %"
    ]
    for(var i = 0; i < sample.length; i++) {
        var input = sample[i];
        var regex = /^(\u20ac ?)?\+?\d+(\.\d+)?(\,\d+)?( ?%)?$/
        console.log(input + "\t" + regex.test(input));
    }
    

    如果有不匹配/不应该匹配的情况,请告诉我。

    【讨论】:

      猜你喜欢
      • 2012-11-30
      • 2010-10-23
      • 1970-01-01
      • 1970-01-01
      • 2015-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多