如何检查字符串中的所有字符是否仅包含javascript中的数字

时间:2019-05-25 04:52:09

标签: javascript string boolean

我有一个字符串 (例如“ 13524” ) 检查字符串是否仅包含数字的最简单方法是什么? 预期结果:

# removing expired vouchers:
for voucher in self.request.basket.vouchers.all():
     if voucher.is_expired() or not voucher.is_available_to_user(user=self.request.basket.owner)[0]:
        self.request.basket.vouchers.remove(voucher)
        messages.error(self.request,_("The '%(code)s' voucher has expired") % {'code': voucher.code})

3 个答案:

答案 0 :(得分:1)

您可以使用isNaN

var str = "23f";
console.log(!isNaN(str));
str = "2356"
console.log(!isNaN(str));

如果您想使用上述指定功能,可以尝试以下操作

if(!String.prototype.isNumber) {
  String.prototype.isNumber = function() {
    return !isNaN(this);
  }
}

var str = "23f";
console.log(str.isNumber());
str = "2356"
console.log(str.isNumber());

正如adiga在评论中指出的那样,如果前面有-,则上述代码将无法正常工作。为了排除这种情况,您需要将代码更新为以下

  • 第一个示例-console.log(/^[0-9]+$/.test(str))
  • 第二个示例-返回/^[0-9]+$/.test(this)

答案 1 :(得分:1)

您可以尝试在!之前加入isNaN()

  

isNaN()函数确定一个值是否为NaN。注意: isNaN 函数内部的强制具有有趣的规则;您可能也想使用ECMAScript 2015中定义的Number.isNaN()

console.log(!isNaN('23f')); // false
console.log(!isNaN(2356));  // true

答案 2 :(得分:1)

您可以使用isNaN

var str = "23f";
console.log(!isNaN(str));
str = "2356"
console.log(!isNaN(str));

您也可以使用正则表达式

let reg = /^\d+(?:\.\d+)?$/
var str = "23f";
console.log(reg.test(str));
str = "2356"
console.log(reg.test(str));

  • /^\d+$-如果您只想匹配整数
  • /^\d+(?:\.\d+)?$-如果您想要带或不带小数的数字
  • /^[+-]?\d+(?:\.\d+)?$-如果您想要带有符号的数字