使用 JS RegEx 添加到字符串(作为数字)
Adding to a string (as numeral) with JS RegEx
是否可以使用 regex/replace 将 (+1) 添加到(子字符串)?例如,如果我有一个以 #img-{digit}
结尾的字符串(在本例中为 window 位置),是否可以使用正则表达式将数字替换为 +1
?
我可以像这样匹配哈希,但我不确定如何提取数字(可以超过 2 位数字!例如 12
)。
var loc = window.location,
locstr = loc.match(/#img-\d+/),
// untested:
locrep = locstr.replace(/\d/, Number() + 1);
假设我当前的哈希值是 #img-4
,那么我想要一个 JS 片段将其更改为 #img-5
。
var locrep = locstr.replace(/\d+/, function([=10=]) { return Number([=10=]) + 1; });
//=> #img-5
否则:
var locrep = locstr.replace(/(#img-)(\d+)/i,
function([=11=], , ) { return + (Number() + 1); });
//=> #img-5
因为你有像#img-{digit} 这样的字符串,你可以使用 split with - 像这样
var loc = window.location,
locstr = loc.split("-");
var newloc = locstr[0]+parseInt(locstr[1])+1;
注意,window.location
returns 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("")));
是否可以使用 regex/replace 将 (+1) 添加到(子字符串)?例如,如果我有一个以 #img-{digit}
结尾的字符串(在本例中为 window 位置),是否可以使用正则表达式将数字替换为 +1
?
我可以像这样匹配哈希,但我不确定如何提取数字(可以超过 2 位数字!例如 12
)。
var loc = window.location,
locstr = loc.match(/#img-\d+/),
// untested:
locrep = locstr.replace(/\d/, Number() + 1);
假设我当前的哈希值是 #img-4
,那么我想要一个 JS 片段将其更改为 #img-5
。
var locrep = locstr.replace(/\d+/, function([=10=]) { return Number([=10=]) + 1; });
//=> #img-5
否则:
var locrep = locstr.replace(/(#img-)(\d+)/i,
function([=11=], , ) { return + (Number() + 1); });
//=> #img-5
因为你有像#img-{digit} 这样的字符串,你可以使用 split with - 像这样
var loc = window.location,
locstr = loc.split("-");
var newloc = locstr[0]+parseInt(locstr[1])+1;
注意,window.location
returns 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("")));