有没有一个更严格的内置javascript函数可以告诉我输入的字符串是否是数字?例如:
// for both of the following it should produce a non-value (nan or undefined or whatever)
> parseFloat('2xa');
2
> parseInt('1ddd')
1
现在我使用正则表达式来实现:
const test_values = [
// [value, expected]
['2.4', 2.4],
['1e2', 1e2],
['1f', null],
['0.28', 0.28],
['1e+7', 1e+7],
['1e+7.1', null]
]
for (let [val, expected] of test_values) {
let m = val.match(/^(-?\d*(\.\d+)|\d+)([eE][+-]?\d*)?$/);
let res = m? parseFloat(m[0]) : null;
console.log(res === expected? 'OK' : 'ERROR', res);
}
1条答案
按热度按时间nqwrtyyt1#
这是一个很好的链接,可以帮助你理解javascript https://www.w3schools.com/js/js_number_methods.asp中的number是如何工作的