您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

验证JavaScript中的十进制数字-IsNumeric()

验证JavaScript中的十进制数字-IsNumeric()

@Joel的答案非常接近,但在以下情况下将失败:

// Whitespace strings:
IsNumeric(' ')    == true;
IsNumeric('\t\t') == true;
IsNumeric('\n\r') == true;

// Number literals:
IsNumeric(-1)  == false;
IsNumeric(0)   == false;
IsNumeric(1.1) == false;
IsNumeric(8e5) == false;

前段时间,我必须实现一个IsNumeric函数,以查明变量是否包含数值, ,它都可能是String包含数值(我还必须考虑指数符号等),Number对象,几乎任何东西都可以传递给该函数,我不能做任何类型假设,要注意类型强制(例如,+true == 1;true不应视为"numeric")。

分享通过的测试:

function isNumeric(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}

由于强制转换为数字,因此PS的行为令人困惑。在ES6中,Number.isNaN和Number.isFinite将解决这些问题。使用它们时请记住这一点。

这是jQuery现在的方式(2.2稳定):

isNumeric: function(obj) {
    var realStringObj = obj && obj.toString();
    return !jQuery.isArray(obj) && (realStringObj - parseFloat(realStringObj) + 1) >= 0;
}

: Angular4.3:

export function isNumeric(value: any): boolean {
    return !isNaN(value - parseFloat(value));
}
javascript 2022/1/1 18:19:15 有642人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶