我有一个像
这样的网址mysite.net/home/index/page/XX
而XX是任何数字。我需要替换XX并删除可能在XX后面的所有内容。所以我想删除page/
后面的所有内容,将其替换为数字。
字符串操作有很多方法http://www.w3schools.com/jsref/jsref_obj_string.asp
我知道如何执行此操作,但我不确定使用哪种方法。所以我最终获得了lastIndexOf("page/")
。所以这个+1会给我一个替换字符串的起点。字符串的整个长度将是结束点。
有什么想法吗?
答案 0 :(得分:1)
我没有得到你的问题,因为你可能找到了你需要的一切......
var yourURI = "mysite.net/home/index/page/XX";
var theDelimiter = "page/";
var yourNewIndex = "42";
var yourNewURI = null;
var lastIndexOfDelimiter = yourURI.lastIndexOf(theDelimiter);
if (lastIndexOfDelimiter != -1)
{
yourNewURI = yourURI.substr(0, lastIndexOfDelimiter + theDelimiter.length) + yourNewIndex;
}
这就是你想要的吗?
答案 1 :(得分:1)
以下代码将通过使用正则表达式来实现这一目的:
"mysite.net/home/index/page/XX".replace(/\/page\/.*/, '/page/123')
答案 2 :(得分:1)
var url = "mysite.net/home/index/page/XX"
return url.substr(-(url.length - (url.lastIndexOf("page/") + 5))))
答案 3 :(得分:0)
这不是你问题的直接答案,但我解决这类问题的方法是让服务器计算一个'基本网址'(mysite.net/home/index/页面/在您的情况下),并在页面构建时将其写入js变量。
对于两个不同的ASP.NET MVC版本(在任何其他框架中都会有类似的东西),这看起来像这样:
var baseUrl = '@ViewBag.BaseUrl';
或
var baseUrl = '<%: ViewData["BaseUrl"] %>';
这有一个很大的优势,即页面JS不会开始了解URL的形成,因此如果您更改URL路由,则不会发现整个地方几乎没有破损。
至少对于ASP.NET MVC,您可以使用框架路由API在服务器端生成基本URL。