【问题标题】:Check if value is NaN but allow special chars检查值是否为 NaN 但允许特殊字符
【发布时间】:2016-11-20 18:45:31
【问题描述】:

我有这个验证检查:

if (isNaN($scope.QuickQuoteData.RequestedAmount)) {
    $scope.ShowValidation = true;
    $scope.errors.push('Requested amount has invalid value.');
}

但我想允许的是,例如,如果用户将以这种格式输入值:

€ 1500000
€ 1.500.000
1.500.000

然后我需要允许操作继续而不是抛出验证错误。

因此,除了上述格式中的输入值之外,其他所有格式都将无效。

知道如何调整它吗?

【问题讨论】:

标签: javascript jquery javascript-objects nan dom-events


【解决方案1】:

正如我对您的要求的理解,您可以这样做。

var specialChars=[".", "$", "€"]; //Add your symbols whatever you need.

function validate(val){
  for(var i=0;i<val.length;i++){
    if(specialChars.indexOf(val[i]) >= 0) {
      continue;
    }
    if(isNaN(val[i])) {
      return false;
    }
  }
  return true;
}

【讨论】:

  • 是的,但是如果用户输入 €asodkao 作为输入值呢?
  • 您需要在key events 上调用此validate() 函数。它将按预期工作。
  • @Laziale 回答已编辑,请检查一次。现在您可以传递整个值而不是单个 char
【解决方案2】:

您可以使用以下方法检查

if (!("Any Number with special chars".test(/^[a-zA-Z]+$/))) { ... }

这将检查提供的数字是否有字符串 不会检查特殊字符...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    相关资源
    最近更新 更多