使用javascript在mvc路由的一段中有效地增加数量
我有一个很长的url路由,我只需要增加路由的一部分。正确的代码来增加这是非常粗糙的外观,似乎有缺陷。我目前正在javascript中使用正则表达式,但可能太复杂了: /超级碗XIX-团体01-01/进攻/11 我想使用javascript增加到该组的路径: /超级碗XIX-group02-01/进攻/11 我目前正在使用以下代码:使用javascript在mvc路由的一段中有效地增加数量,javascript,regex,asp.net-mvc,Javascript,Regex,Asp.net Mvc,我有一个很长的url路由,我只需要增加路由的一部分。正确的代码来增加这是非常粗糙的外观,似乎有缺陷。我目前正在javascript中使用正则表达式,但可能太复杂了: /超级碗XIX-团体01-01/进攻/11 我想使用javascript增加到该组的路径: /超级碗XIX-group02-01/进攻/11 我目前正在使用以下代码: var nextRosterStr = ""; nextRosterStr = $('#btnShowMore').attr("nex
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);
也许你可以用记事本++快速完成。如果要定义管线,请查看此帖子,为什么不将每个部分指定为管线的自己部分呢。IOW
/superbowl XIX/2/1/Adversion/11
,其中您的路由定义定义了哪些部分是什么。需要在javascript b/c中完成。我不断获得新的URL,但-group#-始终保持不变。这是动态变化,不是一次性的。迈克:我添加了一个路由示例。但不能在剃刀里做这个。。。需要在JavaScript中完成。我想如果URL在特定位置只有一个数字,而不是一堆无关的信息,那么在JS中解析会更容易。如果它更接近我展示的内容,您可以通过解析第二个和第三个斜杠之间的文本轻松解析URL。只是一个想法,这就是为什么它是一个评论:)。这真是太棒了!当我得到15分时,我会给你排名。