我想检查字符串是否只包含数字。我用了这个:

var isANumber = isNaN(theValue) === false;

if (isANumber){
    ..
}

但意识到它也允许+和-。基本上,我想确保输入只包含数字,没有其他字符。由于+100和-5都是数字,isNaN()不是正确的方法。 也许regexp就是我所需要的?任何建议吗?


当前回答

function isNumeric(x) {
    return parseFloat(x).toString() === x.toString();
}

虽然这将返回false字符串的前导或末尾为0。

其他回答

如果你想支持浮点值(点分隔值),那么你可以使用这个表达式:

var isNumber = /^\d+\.\d+$/.test(value);

如何

let isnum = /^\d+$/.test(val);
function isNumeric(x) {
    return parseFloat(x).toString() === x.toString();
}

虽然这将返回false字符串的前导或末尾为0。

c="123".match(/\D/) == null #true
c="a12".match(/\D/) == null #false

如果字符串只包含数字,它将返回null

你可以使用下面的正则表达式:

^\d+$