0

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

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

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

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

4

6 回答 6

1

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

parseFloat(mystring);
于 2012-10-12T13:52:47.507 回答
1
var str = '2 <a href="user/usergroups.html?uname=Users@Users.com ">view</a>​​​​​​​​​​​​​';
var parts = str.split(' ');
alert(parts[0]);​​​​
于 2012-10-12T13:52:54.340 回答
0

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

var input = '2 <a href="user/usergroups.html?uname=Users@Users.com ">view</a>';
var number = input.match(/^\d+/g);
于 2012-10-12T13:52:42.937 回答
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)
于 2012-10-12T13:57:19.803 回答
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);
于 2012-10-12T13:58:40.947 回答
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>')
输出:2

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

于 2012-10-12T13:59:29.523 回答