在JavaScript中解析整数(和*仅*整数)

时间:2017-04-14 19:24:39

标签: javascript jquery string parsing converter

提示,因为可以将字符串转换为数字,以便只有除整数之外的任何变量都会产生错误。

upcast

ParseInt 不起作用,因为它无法正常工作。

func('17') = 17;
func('17.25') = NaN
func(' 17') = NaN
func('17test') = NaN
func('') = NaN
func('1e2') = NaN
func('0x12') = NaN

最重要的是:该功能可以在IE,Chrome和其他浏览器中使用!!!

2 个答案:

答案 0 :(得分:4)

您可以使用regular expression和三元运算符拒绝包含非数字的所有字符串:

function intOrNaN (x) {
  return /^\d+$/.test(x) ? +x : NaN
}

console.log([
  '17', //=> 17
  '17.25', //=> NaN
  ' 17', //=> NaN
  '17test', //=> NaN
  '', //=> NaN
  '1e2', //=> NaN
  '0x12' //=> NaN
].map(intOrNaN))

答案 1 :(得分:1)

这将满足您的所有测试:

function func (str) {
  var int = parseInt(str, 10);
  return str == str.trim() && str == int ? int : NaN
}