是否可以使用regex / replace将(+1)添加到(substring)?例如,如果我有一个以#img-{digit}
结尾的字符串(在本例中为窗口位置),是否可以使用正则表达式将数字替换为+1
的数字?
我可以像这样匹配哈希,但我不确定如何提取数字(可以超过2位数!例如12
)。
var loc = window.location,
locstr = loc.match(/#img-\d+/),
// untested:
locrep = locstr.replace(/\d/, Number($1) + 1);
让我们说我当前的哈希是#img-4
,然后我想要一个JS片段,将其更改为#img-5
。
答案 0 :(得分:2)
var locrep = locstr.replace(/\d+/, function($0) { return Number($0) + 1; });
//=> #img-5
否则:
var locrep = locstr.replace(/(#img-)(\d+)/i,
function($0, $1, $2) { return $1 + (Number($2) + 1); });
//=> #img-5
答案 1 :(得分:0)
由于你有像#img- {digit}之类的字符串,你可以使用split - 就像这样
var loc = window.location,
locstr = loc.split("-");
var newloc = locstr[0]+parseInt(locstr[1])+1;
答案 2 :(得分:0)
注意,window.location
会返回window.location
object
;例如,
console.log(typeof window.location, typeof window.location.hash);
尝试
var loc = window.location.hash
, locrep = loc.match(/[^\d]/g).join("") + (1+Number(loc.match(/\d/g).join("")));