从字符串中获取数字的最佳方法是什么。
该字符串将始终以n
开头,并以任何数字结尾,即:。
n1
n2
n3
n10
n100
n1000
n99999
n9999999999999
等等。
答案 0 :(得分:2)
如果它始终以单个'n'开头,那就保持简单:
var number = parseInt(value.replace('n', ''));
答案 1 :(得分:2)
如果你能保证字符串总是这样,那么
num = parseInt(str.substring(1));
答案 2 :(得分:1)
Number.of = function (number) {
if (typeof number === "number")
return number;
var number = number + '',
regnum = /(-)?[0-9]+\.?[0-9]*/.exec(number);
return regnum ? (new Function('return ' + regnum[0]))() : 0;
};
然后运行..
Number.of('n12345'); // 12345
对我来说,采取一种令人难以置信的谨慎态度,但是什么会从任何事物中剔除。
Number.of('Hel5lo'); // 5
并且总是返回一个数字。
Number.of('There is no number here.'); // 0
虽然这可能对您有所帮助,也可能没有帮助。
答案 3 :(得分:0)
您可以使用String.prototype.substr
[docs](或substring
)和一元+
将字符串转换为数字:
var number = +str.substr(1);
答案 4 :(得分:0)
我建议:
$('dt').each(
function(){
var n = $(this).text().substring(1);
$('<dd />').text(n).insertAfter($(this));
});
显然,您选择使用哪些元素(我为输入和输出之间的隐含关系选择了dt
和dd
)并不重要。重要的部分是substring()
功能; 1
的值是指结果子字符串的起始点(来自第二个字符,因为JavaScript使用从零开始的数组)。
如果传递了第二个数字,则格式substring(1,4)
生成的子字符串将从第二个字符开始,以第五个字符结束,除非 {{1}的字符串工作的长度比第二个参数短,在这种情况下,它被视为等于字符串的长度。
参考: