解析JavaScript字符串最佳实践

时间:2009-07-13 22:22:56

标签: javascript arrays string parsing

我有这个

   var checkBox = e.target;

    var tableRow = checkBox.parentNode.parentNode;
    var key = tableRow.attributes["key"];
    var aKey = key.nodeValue;

此时aKey =“[123]”

在javascript中返回123作为int的最佳方法是什么?注意aKey可能就像“[5555555555555555555]”所以我不能只抓取2-4个字符。我需要更有活力的东西。我希望这可以解析为像一个单元素数组,但我发现这是不正确的。这实际上是Infragisitcs网格的dataKey。他们的支持不是很有帮助。

感谢您的任何建议。

干杯, 〜在圣地亚哥

4 个答案:

答案 0 :(得分:3)

只要您的密钥适合int而不会溢出,您就可以

numericKey = parseInt(aKey.substr(1, aKey.length - 2))

答案 1 :(得分:2)

我认为如果它始终采用该格式,您可以安全地使用eval()将其转换为数组并获取第一个元素。

var aKey = eval( key.nodeValue );
var nKey = aKey[0];

答案 2 :(得分:0)

包括

<script src="http://json.org/json2.js"></script>

这将在浏览器上为您提供一个没有它的JSON对象,但会在可用时使用浏览器实现。

然后

JSON.parse(aKey);

这将为您提供数组。

答案 3 :(得分:0)

您的5555555555555555555示例超出了最大的“整数”,它可以可靠地存储在JavaScript的IEEE-754双精度浮点格式中,即9007199254740992。希望你刚刚制作了那个疯狂的大数字并且你的整数没有得到几乎那么大。

如果你确实得到的数字很大,你可能需要将数字保存在一个字符串中,将大数字分成多个部分,或使用a bigint library

相关问题