Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript在mvc路由的一段中有效地增加数量_Javascript_Regex_Asp.net Mvc - Fatal编程技术网

使用javascript在mvc路由的一段中有效地增加数量

使用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

我有一个很长的url路由,我只需要增加路由的一部分。正确的代码来增加这是非常粗糙的外观,似乎有缺陷。我目前正在javascript中使用正则表达式,但可能太复杂了:

/超级碗XIX-团体01-01/进攻/11

我想使用javascript增加到该组的路径:

/超级碗XIX-group02-01/进攻/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);

也许你可以用记事本++快速完成。如果要定义管线,请查看此帖子,为什么不将每个部分指定为管线的自己部分呢。IOW
/superbowl XIX/2/1/Adversion/11
,其中您的路由定义定义了哪些部分是什么。需要在javascript b/c中完成。我不断获得新的URL,但-group#-始终保持不变。这是动态变化,不是一次性的。迈克:我添加了一个路由示例。但不能在剃刀里做这个。。。需要在JavaScript中完成。我想如果URL在特定位置只有一个数字,而不是一堆无关的信息,那么在JS中解析会更容易。如果它更接近我展示的内容,您可以通过解析第二个和第三个斜杠之间的文本轻松解析URL。只是一个想法,这就是为什么它是一个评论:)。这真是太棒了!当我得到15分时,我会给你排名。