如何使用Javascript或Jquery增加字符串中的数字
How to increment number in string using Javascript or Jquery
我的文本区域的id是字符串,格式为
id='fisher[27].man'
我想克隆文本区域,增加数字,并将id作为fisher[28].man
,并将其预先添加到现有的文本区域中。
有没有一种方法可以用jquery轻松地完成这项工作?
var existingId = $("#at textarea:last").attr('id');
var newCloned = lastTextArea.clone();
var newId = newCloned.attr('id');
//add the index number after spliting
//prepend the new one to
newCloned.prepend("<tr><td>" + newCloned + "</td></tr>");
必须有更简单的方法来克隆、获取索引号、拆分和预处理。
我也试过用regEx 来做这件事
var existingIdNumber = parseInt(/fisher[('d+)]/.exec(s)[1], 10);
有人能帮我吗?
正确的正则表达式应该是这个
/fisher'['d+'].man/
这是一种提取id的方法。
id = text.replace(/fisher'[('d+)'].man+/g,"$1");
//Now do whatever you want with the id
类似地,可以使用相同的替换技术来获得递增的id,如:
existingId = 'fisher[27].man';
newId = existingId .replace(/('d+)+/g, function(match, number) {
return parseInt(number)+1;
});
console.log(newId);
具有这两种用法的演示
jsFiddle演示
不需要所有额外的代码。更改此行:
var newId = newCloned.attr('id');
收件人:
var newId = newCloned.attr('id').replace( /('d+)/, function(){return arguments[1]*1+1} );
这个问题公认答案的另一个简单解决方案:
'url1'.replace(/'d+$/, function(n){ return ++n }); // "url2"
'url54'.replace(/'d+$/, function(n){ return ++n }); // "url55"
非常干净易读。
我很惊讶这个简单的东西没有任何好的实现。所有的例子都忘记了数字前面有零的情况。下面的代码应该能解决这个问题。
// 'item001' => 'item002'
function increment_alphanumeric_str(str){
var numeric = str.match(/'d+$/)[0];
var prefix = str.split(numeric)[0];
function increment_string_num(str){
var inc = String(parseInt(str)+1);
return str.slice(0, str.length-inc.length)+inc;
}
return prefix+increment_string_num(numeric);
}
示例:
> increment_alphanumeric_str('test09')
'test10'
唯一的缺点是,如果我们有像'test99'
这样的东西,这将被打破。
如果您的Id具有此格式
id='fisher[27].man'
你可以做一些类似的事情
var startIndex = newId.indexOf('[');
var endIndex = newId.indexOf(']');
var number = parseInt(newId.substr(startIndex + 1, endIndex - startIndex - 1));
var incrementedId = number + 1; // 28
其中
var newId = newCloned.attr('id');
使用正则表达式替换:可以很容易地做到这一点
var id = "fisher[27].man";
id = id.replace(/'[('d+)']/, function(match, number) {
return '[' + (parseInt(number, 10) + 1) + ']';
});
// id is now "fisher[28].man"
相关文章:
- Javascript逻辑运算符和字符串/数字
- Javascript排序字符串或数字
- 制作一个regex来验证只有一个数字的字符串
- 将数字转换为字符串数字
- 将HTML(支持文件)中的令牌(字符串、数字等)传递给LogiXML
- 如何从字符串中删除除字母、数字、空格、感叹号和问号之外的所有内容
- 如何替换JavaScript字符串中除字母和数字之外的所有内容(空格/符号)
- 从JS中的字符串中读取数字的库
- 字符串数字-从123456转换为123456
- JavaScript如何面对字符串数字工作
- 将字符串数字的格式设置为货币
- Javascript:如何检索*字符串*数字的小数位数
- 试图理解无法在JavaScript中改变字符串/数字的概念
- Javascript没有使用parseInt函数添加两个字符串数字
- 在jQuery中将整数格式化为字符串数字
- Regex格式字符串数字与逗号和2个小数在javascript
- 如何使用javascript排序字符串数字
- 转换'字符串数字'到一个数字
- 检查字符串/数字类型的字段是否为空
- JavaScript:将字符串/数字转换为数字或null,0返回0