我有一个很长的 url 路由,我只需要增加路由的一部分。增加此值的正确代码看起来非常粗糙并且似乎有错误。我目前在 javascript 中使用正则表达式,但可能太复杂了:
/superbowl-XIX-group01-01/offense/11
我想使用 javascript 增加组 # 路由:
/superbowl-XIX-group02-01/offense/11
我目前正在使用此代码:
var nextRosterStr = "";
nextRosterStr = $('#btnShowMore').attr("next-page");
if (typeof nextRosterStr === 'undefined') {
return;
} else if (isUIButton === false) {
// update the btnShowMore attribute as well
var gNumberValue = nextRosterStr.match(/-group0?\d*-/g);
gNumberValue = gNumberValue.toString().replace(/0/, "ZERO");
var gNumberStr = gNumberValue.toString().match(/\d*/g);
var gNumber = parseInt(gNumberStr.join(""), 10);
gNumber++;
var gNumberValueFinal = "";
if (gNumber > 9) {
gNumberValueFinal = gNumberValue.replace(/\d*/g, gNumber.toString(10));
gNumberValueFinal = gNumberValueFinal.toString().replace("ZERO", "").toString();
} else {
gNumberValueFinal = gNumberValue.toString().replace(/\d+/g, gNumber.toString(10));
gNumberValueFinal = gNumberValueFinal.toString().replace("ZERO", "0").toString();
}
var nextRosterStr = nextRosterStr.replace(/-group0?\d*-/g, gNumberValueFinal.toString());
顺便说一句,这是一个路线设置示例:
new RouteMappingItem()
{
PageName = "Superbowls",
Url = "/{GameType}-{GameIdentifier}-group{groupNumber}-01/{formationName}/{rankingCount}",
Defaults = new { controller = ...
},
必须有一种更简单的方法来做到这一点。
最佳答案
小于 10 和大于或等于 10 时不要有不同的情况。获取数字,解析它,递增它,将其转换为带有前导零的字符串,然后将其放回字符串中。
这里有一个转换为带前导零的字符串的技巧:
numberAsString = ('00' + number).slice(-2);
关于javascript - 使用javascript在mvc路由的一部分中有效增加数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25556559/