我得到一个输入元素的名称,它是一个带有数字的字符串 (url1
)。我想以最简单、最快捷的方式将数字递增 1 (url2
)。
我的方法是获取 \d
/restofstring,++
匹配,然后将数字与 restofstring 放在一起。有没有更好的办法?
更新:
我的最终(虚拟)代码变成了:
var liNew = document.createElement('li');
liNew.innerHTML = liOld.innerHTML;
var els = Y.Dom.getChildrenBy(liNew, function(el) {
return el.name.match(/\d+$/);
} // YUI method where the function is a test
for (var i = 0, el; el = els[i]; i++) {
el.name = el.name.replace(/\d+$/, function(n) { return ++n });
}
list.appendChild(liNew);
最佳答案
怎么样:
'url1'.replace(/\d+$/, function(n){ return ++n }); // "url2"
'url54'.replace(/\d+$/, function(n){ return ++n }); // "url55"
我们在字符串末尾搜索一个数字,将其转换为 Number
,将其递增 1,然后将其放回字符串中。我认为这甚至与您在问题中的措辞相同。
引用:
-
String.prototype.replace
- 可以采用正则表达式
关于javascript - 使用正则表达式增加字符串中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1742798/