尝试修剪数字时出错

时间:2015-09-22 02:38:18

标签: javascript trim

我的JS函数存在问题:每当我运行此函数时,控制台都会抛出错误。我只是试图“修剪”作为参数传递的值,但控制台说:

  

未捕获的TypeError:number.trim不是函数

问题在于我的语法,以下是代码:

function demo(number) {
  number = number.trim();  // This is where the issue happens...
  number = number.parseInt();
  // Rest of the code       
}

非常感谢您的帮助!

3 个答案:

答案 0 :(得分:9)

修剪仅适用于字符串。

String.prototype.trim

为什么需要修剪数字?

您可以使用parseIntparseFloat

直接解析它

如果你不知道你的数据,有时可能是字符串或某个时候它可能是数字

然后尝试这样

number = String(number).trim(); 

答案 1 :(得分:3)

Uncaught TypeError: number.trim is not a function

似乎表明number不是String对象。由于parseInt()不是String.prototype

的方法,因此也可能会在下一行返回错误

如果传递给demo的参数为String且预期结果为Number,请尝试通过调用numberNumber转换为Number()对象参数String.prototype.match()RegExp /\d+/g匹配数字Array.prototype.join()与参数""

function demo(number) {
  number = typeof number === "string" 
           ? Number(number.match(/\d+/g).join("")) 
           : typeof number === "number" ? number : typeof number;
  return number
}

console.log(demo(" abc 123 def 456 "), demo(7), demo([]))

答案 2 :(得分:2)

该错误消息基本上是说传递给方法的任何内容都没有trim函数。您必须连接调试器并验证传递给函数的内容。无论它是什么都没有trim()函数。