问题陈述是这样的:我有一个合同。在每月更新时,合同名称应附加更新标识符。例如在开始名称为myContract然后在第一更新的名称应该是myContract-R1,下一个更新的名称应该是myContract-R2等..在每个更新,名称应自动改变。所以在JQuery中,我该如何做到这一点?如何在JavaScript中实现字符串操作
回答
这是一个JavaScript问题,而不是一个jQuery问题。 jQuery对JavaScript的内置字符串操作几乎没有影响。
听起来好像你想以“myContract”或“myContract-Rx”的形式取一个字符串,并且有一个附加“-R1”的函数(如果没有“-Rx”,或者增加了数字)那里。
没有捷径,你必须这样做。这里是一个可行的草图,我希望它可以优化:
function incrementContract(name) {
var match = /^(.*)-R([0-9]+)$/.exec(name);
if (match) {
// Increment previous revision number
name = match[1] + "-R" + (parseInt(match[2], 10) + 1);
}
else {
// No previous revision number
name += "-R1";
}
return name;
}
它很棒!感谢Crowder – maaz 2011-06-07 06:23:32
@Hussain:不用担心,很高兴帮助。也请看@ Guffa的答案。同样的事情,但以不同(而且非常优雅)的方式表达。 – 2011-06-07 06:34:26
如何获取续订号码?从日期计算还是从数据库中获取?
var renewal = 1,
name = 'myContract',
newname = name+'R'+renewal;
或也许像
$(function(){
function renew(contract){
var num_re = /\d+/,
num = contract.match(num_re);
if (num==null) {
return contract+'-R1';
} else {
return contract.replace(num_re,++num[0]);
}
}
var str = 'myContract';
new_contract = renew(str); // myContract-1
new_contract = renew(new_contract); // myContract-2
new_contract = renew(new_contract); // myContract-3
});
这里的jQuery帮不了你。这是纯JavaScript与字符串一起工作
P.S.我在这里有简单的reg exp,这对你的例子不是具体的(但它起作用)。从T.J.的例子中更好地使用reg-exp Crowder
您可以使用正则表达式是:
s = s.replace(/(-R\d+)?$/, function(m) {
return '-R' + (m.length === 0 ? 1 : parseInt(m.substr(2), 10) + 1);
});
模式(-R\d+)?$
将匹配版本号( -R\d+
)如果有一个(?
),并且字符串的末尾($
)。
如果之前没有版本号,替换将返回-R1
,否则它将解析版本号并增加它。
哦,太漂亮了。但是确保在解析int时包含基数... – 2011-06-07 06:17:51
@ T.J。克劳德:对......你会认为我应该学会记住,现在......:P我更新了代码。 – Guffa 2011-06-07 06:26:54
- 1. 如何实现字符串操作?
- 2. 的JavaScript字符串操作
- 3. JavaScript操作HTML字符串
- 4. JavaScript字符串操作
- 5. 的JavaScript字符串操作
- 6. JavaScript的字符串操作
- 7. javascript字符串操作
- 8. javascript字符串操作
- 9. 如何以有效的方式实现字符串操作?
- 10. 如何在JavaScript中做这个字符串操作?
- 11. 如何在javascript的字符串操作中使用单引号
- 12. Javascript代码中的字符串操作
- 13. javascript中的字符串操作
- 14. 如何在JavaScript中实现被称为字符串的函数?
- 15. Javascript字符串赋值操作符
- 16. 如何操作字符串在PHP
- 17. 如何在字符串上实现“EndsWith”?
- 18. 如何操作字符串从输入值在Javascript上
- 19. 在查询字符串中使用与符号实现Web Api操作
- 20. 如何在C#中实现malloc操作#
- 21. 如何在MIPS中实现NOT操作?
- 22. 如何在Pascal中实现Matrix操作?
- 23. 如何在Python中实现链操作?
- 24. Javascript日期/字符串操作
- 25. 使用JavaScript字符串操作,切出
- 26. 基本的JavaScript字符串操作
- 27. Javascript字符串操作和innerHtml
- 28. 简单的JavaScript字符串操作
- 29. Javascript字符串操作 - 网址
- 30. JavaScript的 - 与字符串操作
您可以使用字符串连接运算符'+'。 – alex 2011-06-07 06:04:00