从字符串中获取初始数字

时间:2012-10-12 13:50:47

标签: javascript jquery

我正在尝试使用jQuery / Javascript获取字符串的初始数值。现在,我得到的字符串是:

  2 <a href="user/usergroups.html?uname=Users@Users.com ">view</a>

我正在尝试取这个字符串(存储在一个变量中,只从中获取初始数字。通常情况下,我只会取第一个数字,但我想让它变得灵活,所以number可以是任何长度的数字(例如,“2”到“20,000,000”),所以我知道只是取前几位数字不起作用。

有没有人有解决方案?谢谢你的时间!

6 个答案:

答案 0 :(得分:1)

使用parseFloat。当它遇到非数字字符时它会停止。

parseFloat(mystring);

答案 1 :(得分:1)

var str = '2 <a href="user/usergroups.html?uname=Users@Users.com ">view</a>​​​​​​​​​​​​​';
var parts = str.split(' ');
alert(parts[0]);​​​​

答案 2 :(得分:0)

其中一个解决方案是使用正则表达式^\d+如果您只想抓取数字,或^[\d,]+如果您允许使用逗号:

var input = '2 <a href="user/usergroups.html?uname=Users@Users.com ">view</a>';
var number = input.match(/^\d+/g);

答案 3 :(得分:0)

如果数字中可能有逗号,也可能是小数点,并且之后总是有空格,我会匹配使用这样的正则表达式...

var str = '2,000.33 <a href="user/usergroups.html?uname=Users@Users.com ">view</a>'
var bits = str.match(/^[\d,\.]+/)

// alerts 2,000.33
alert(bits[0])

// to convert to string...
num = parseFloat(bits[0].replace(/,/g,''))

alert(num)
// alerts: 2000.33 (treated as number, not as string representation of number)

答案 4 :(得分:0)

如果数字不是以逗号分隔的:

var s   = '1234 <a href="user/usergroups.html?uname=Users@Users.com ">view</a>',
    num = parseInt(s, 10);

如果数字是逗号分隔的:

var s   = '1,234 <a href="user/usergroups.html?uname=Users@Users.com ">view</a>',
    num = parseInt(s.match(/^\d{1,3}(?:,\d{3})*/)[0].replace(/,/g, ''), 10);

答案 5 :(得分:0)

function getNum ( str ) {
    var result = '';
    var nums = str.match(/^(\d+|\,)*/);
    if(nums[0])
        result = parseFloat(nums[0].replace(/,/g,''));

    return result;
}

用法:

getNum ('2 <a href="user/usergroups.html?uname=Users@Users.com ">view</a>')
输出:2p>

getNum ('20,000,000 <a href="user/usergroups.html?uname=Users@Users.com ">view</a>')
输出:20000000