2011-04-01 46 views
0

我哈瓦像搜索一个词,它背后

mysite.net/home/index/page/XX 

的URL,而XX是任何数字取代一切。我需要更换XX并删除可能位于XX后面的所有内容。所以我想通过将其替换为数字来移除page/后面的所有内容。

有字符串处理了很多方法http://www.w3schools.com/jsref/jsref_obj_string.asp

我知道如何执行这一点,但我不知道要使用哪些方法。所以我最终得到了lastIndexOf("page/")。所以这个+1会给我取代字符串的起点。字符串的整个长度将是结束点。

任何想法?

+0

? – greggreg 2011-04-01 07:08:57

+0

是的只是取代页面后面的所有内容/ – 2011-04-01 07:11:30

+0

你正在寻找的词是'后'而不是'后'。 – 2011-04-01 07:12:08

回答

1

下面的代码将这样的伎俩,通过使用正则表达式:

"mysite.net/home/index/page/XX".replace(/\/page\/.*/, '/page/123') 
0

这不是一个直接的回答你的问题,但我解决这种问题的方式是让服务器计算一个'基地url'(mysite.net/home/index/page/在你的情况),并在构建页面时将其写入一个js变量。

两个不同的ASP.NET MVC版本(会有类似的东西,你可以在任何其他的框架做)这看起来是这样的:

var baseUrl = '@ViewBag.BaseUrl'; 

var baseUrl = '<%: ViewData["BaseUrl"] %>'; 

这有大好处是页面JS没有开始知道URL的形成,所以如果你改变你的URL路由,你不会发现到处都有破损。

至少对于ASP.NET MVC,您可以使用框架路由API在服务器端生成基本URL。

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
var url = "mysite.net/home/index/page/XX" 
return url.substr(-(url.length - (url.lastIndexOf("page/") + 5)))) 
要删除一切至XX,然后用另一个号码代替XX