Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解析最后一个数字并另存为变量_Javascript_Jquery_Parseint - Fatal编程技术网

Javascript 解析最后一个数字并另存为变量

Javascript 解析最后一个数字并另存为变量,javascript,jquery,parseint,Javascript,Jquery,Parseint,我想将两个不同的值保存为图像计数器类中的两个变量,如: <div class="counter">33 / 111</div> 但是,如何获取最后一个数字(图像总数=“111”)并将其放入另一个第二个变量中 var x=$('.counter').text(); x=???parseInt(x)+???;//get the last Number (111) alert(x); //x=111 首先,不要使用parseInt()获取第一个值。使用s

我想将两个不同的值保存为图像计数器类中的两个变量,如:

<div class="counter">33 / 111</div> 
但是,如何获取最后一个数字(图像总数=“111”)并将其放入另一个第二个变量中

var x=$('.counter').text();

    x=???parseInt(x)+???;//get the last Number (111)
    alert(x); //x=111

首先,不要使用
parseInt()
获取第一个值。使用
split()

var values = $('.counter').text().split('/');
var values = $('.counter').text().split('/').map(Number);
let [firstValue, secondValue] = $('.counter').text().split('/').map(Number);
然后,要将它们放入单独的变量中,只需引用数组的相关索引:

var firstValue = values[0];
var secondValue = values[1];

上面的解决方案将从div返回字符串值,因此如果您实际需要它们作为整数,可以使用
parseInt()
单独转换它们,如下所示:

var firstValue = parseInt(values[0]);
var secondValue = parseInt(values[1]);
或者,在分配
firstValue
secondValue
变量之前,您可以将整个数组转换为整数,而不必在声明中使用
parseInt()
,如下所示:

var values = $('.counter').text().split('/');
var values = $('.counter').text().split('/').map(Number);
let [firstValue, secondValue] = $('.counter').text().split('/').map(Number);
另一个音符
如果您使用的是新的ES6 JavaScript规范(里面有很多好东西),那么您实际上可以使用非常流畅的一行代码来实现这一点,如下所示:

var values = $('.counter').text().split('/');
var values = $('.counter').text().split('/').map(Number);
let [firstValue, secondValue] = $('.counter').text().split('/').map(Number);
如果文本始终为“number/number”,则可以按如下方式提取最后一个数字:

lastNumber = +(x.split('/')[1].trim());
var totalNum = parseInt(x.substr(x.indexOf('/') + 1));
var pageNum = parseInt(x);

split
创建一个数组,
[1]
返回该数组中的第二个成员,
trim
删除字符串周围的空白。最后,表达式前面的
+
将值转换为数字。

正则表达式是一个选项,但更基本的方法如下:

lastNumber = +(x.split('/')[1].trim());
var totalNum = parseInt(x.substr(x.indexOf('/') + 1));
var pageNum = parseInt(x);

也许你可以根据分隔符来拆分字符串。我会调查这个策略。再想一想,不要调查任何事情,这不值得。在JavaScript 101中已经有三个答案。哦,我们跌得多低啊。别忘了解析int(值[n]),以确保它返回的是一个数字而不是字符串:)@jr2000,谢谢你指出这里的上升投票是不合理的。这实际上对提问者有害,因为他们想要一个数字作为输出。迎接新的堆栈溢出:错误问题的错误答案™.@FrédéricHamidi显然你没有注意到OP没有提到他们实际上想用这些值做什么。据我们所知,OP需要的是字符串,而不是整数。我会让他们做出决定,而不是强迫他们。OP只询问如何获得这些值——这个答案(实际上还有其他答案)正好提供了他们所需要的。请随意提供您自己的“好答案”™" 随时。还有@jr2000,谢谢你提到
parseInt()
。我会更新我的答案,也包括这一点。:-@jeff,显然你没有注意到提问者使用
parseInt()
在他们的代码中。无论如何,如果他们真的没有提到他们实际上想对这些值做什么,那么问题就不清楚了,应该结束,不回答。Re:你的最后一句话,我确实试图引导提问者在评论中找到可能的解决方案,就像我通常对这样的琐碎、没有研究的问题所做的那样。我不知道答案回答他们,我认为这是最好的。祝你有愉快的一天。