我有一个左箭头,单击时应减少文件名,以便加载上一张图片。
我认为使用带基数的parseint可以做到(注释掉)但是如果它原来是NAN我使用了字符串替换,但它仍然不起作用。
我在这里遗漏了什么吗?
$('#lar').on("click", function() {
/*var num = parseInt( $('#main-img').attr('src'), 10);
if (num > 0) {*/
var num = $('#main-img').attr('src').replace(/\d+/, '');
if (num > 0) {
$('#main-img').attr('src', $('#main-img').attr('src').replace(/\d+/, function(val) {
return parseInt(val) - 1;
}));
}
});
谢谢你们。
答案 0 :(得分:1)
代码中的问题:
regex
不正确numbers
。您没有使用regex
提取数字。使用以下regex
从字符串中提取数字。
var num = $('#main-img').attr('src').match(/(\d+)/)[1];
您需要使用parseInt
将字符串解析为整数。否则,将永远不会满足条件num > 0
。
var num = parseInt($('#main-img').attr('src').match(/(\d+)/)[1], 10);
// ^^^^^^^^^ ^^^^^
<强>演示强>
var str = 'abc123';
var num = str.match(/(\d+)/)[1];
document.write('num= ' + num);
document.write('<br />');
document.write('<br />');
document.write(typeof num);
document.write('<br />');
document.write(typeof parseInt(num, 10));
&#13;