解析正整数和负数,Javascript的字符串

时间:2012-08-08 22:28:22

标签: javascript parsing tags position d3.js

所以我正在研究在d3中制作的标签云示例。

http://www.jasondavies.com/wordcloud/#http%3A%2F%2Fsearch.twitter.com%2Fsearch.json%3Frpp%3D100%26q%3D%7Bword%7D=cloud

我试图在每个单词悬停时定位一个Div ontop,并且我基本上遇到了问题,因为我放置div的方式取决于svg单词元素的transform属性。

此transform属性是我需要解析的字符串,但该字符串包含我需要抓取的正值和负值。

tagCloudHover.style("top", function(){

       //parses the words attributes for its position, and gives that position to tagCloudHover
       var str, matches, index, num;
        str = thisWord.attr("transform");
        matches = str.match(/\d+/g);
        for (index = 1; index < 2; ++index) {
                num = (parseInt(matches[index], 10));

        }



        if(num<0){
            return -num+"px";
        }else{
            return num+"px";
        }
  });

我的代码如上所述,其中最后一个语句什么都不做,但它能够从字符串中获取一个Int。问题是它不会抓住负号。

我不是最好的解析,但我尝试了几个不同的str.match函数,似乎没有任何工作。

任何parseNinjas有什么想法吗? 什么有帮助。 艾萨克

2 个答案:

答案 0 :(得分:2)

您的正则表达式应为/-?\d+/g,基本上会在模式中添加“可选-”。

答案 1 :(得分:1)

如果您知道需要解析的值,可以将负数乘以-1

示例:

num = -1 * (parseInt(matches[index], 10));