我正在尝试使用jQuery / Javascript获取字符串的初始数值。现在,我得到的字符串是:
2 <a href="user/usergroups.html?uname=Users@Users.com ">view</a>
我正在尝试取这个字符串(存储在一个变量中,只从中获取初始数字。通常情况下,我只会取第一个数字,但我想让它变得灵活,所以number可以是任何长度的数字(例如,“2”到“20,000,000”),所以我知道只是取前几位数字不起作用。
有没有人有解决方案?谢谢你的时间!
答案 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