我正在构建一个在 POST 请求中发送的 JSON 对象。该对象具有在发送前需要从字符串类型转换为整数类型的属性。如何使用咖啡脚本做到这一点?
问问题
35577 次
9 回答
66
使用javascriptparseInt
函数。
number = parseInt( stringToParse, 10 );
参考在这里。
请记住,coffeescript 只是编译后的 javascript
于 2012-05-23T13:27:25.637 回答
38
您可以使用不那么明显、更神奇、键盘密集度较低的运算符 +:
+"158"
于 2012-05-23T13:32:43.670 回答
7
Javascript 的 parseInt 函数将实现这一点。请记住设置 radix 参数以防止混淆并确保可预测的行为。(例如在 Coffeescript 中)
myNewInt = parseInt("176.67", 10)
MDN 资源中有一些很好的例子:https ://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt
于 2012-05-23T13:32:01.727 回答
2
它尚未在官方手册中记录,但似乎演员操作员也可以工作:
myString = "12323"
myNumber = (Number) myString
于 2012-12-11T09:31:10.777 回答
2
我不建议使用parseInt
,因为在一种情况下它是错误的 - 我发现:
parseInt('09asdf', 10);
#> return 09 which is not correct at all. It should return NaN
正确答案应该是来自@Corkscreewe 的答案。还有一个:
cleanInt = (x) ->
x = Number(x)
(if x >= 0 then Math.floor(x) else Math.ceil(x))
于 2013-08-26T08:44:02.857 回答
2
根据nXqd 的答案中提到的链接,您还可以通过将字符串乘以 1 来隐式转换字符串:
'123' * 1 // 123
对于不正确的输入,它的行为正确:
'123abc' * 1 // NaN
您也可以使用浮点数执行此操作:
'123.456' * 1 // 123.456
于 2015-02-18T09:41:10.260 回答
0
这是满足您需要的简单方法。NaN 将按预期返回。
parseInt( "09asdf".match(/^\d+$/)?[0] ? NaN, 10)
于 2014-12-18T01:22:44.480 回答
0
stringToConvernt = "$13,452,334.5"
output = Number(stringToConvernt.replace(/[^0-9\.]/g, ''))
console.log(output)
//The output is `13452334.5`.
于 2015-09-09T11:45:43.293 回答
0
我总是使用按位或将字符串转换为整数。
"99.999" | 0 // returns 99
于 2017-03-16T12:27:18.263 回答