我正在尝试对字符串执行以下操作:
"/";更明确一点,假设我有以下字符串:
var string = "/Roland/index.php"; // Which is a result of window.location.pathname
Run Code Online (Sandbox Code Playgroud)
现在我需要提取的是除了实际页面之外的所有内容,如下所示:
var result = "index.php" // Which is what I need to be returned
Run Code Online (Sandbox Code Playgroud)
当然,这只是一个例子,因为显然我会有不同的页面,但同样的原则适用.
我想知道是否有人可以帮我解决问题.我尝试了下一步行动但没有成功:
var location = window.location.pathname;
var result = location.substring(location.lastIndexOf["/"]);
Run Code Online (Sandbox Code Playgroud)
Gen*_* S. 98
您有正确的想法只需用括号替换括号.
var string = "/Roland/index.php";
var result = string.substring(string.lastIndexOf("/") + 1);
Run Code Online (Sandbox Code Playgroud)
这是jsfiddle中的一个示例,这里是对Mozilla Developer Network上的.lastIndexOf()方法的解释.
Poi*_*nty 10
就个人而言,我会使用正则表达式:
var result = string.replace(/^.*\/(.*)$/, "$1");
Run Code Online (Sandbox Code Playgroud)
如果你熟悉正则表达式(如果不是你应该如此:-)那么它并不像他们不熟悉那样外星人.
前导^强制此正则表达式在字符串的开头"锚定"匹配.的\/比赛的单个/字符(\是保持/从混淆正则表达式分析器).然后(.*)$匹配从/字符串到结尾的所有其他内容.初始.*将尽可能多地吞噬,包括/最后一个之前的字符.替换文本"$1"是一种特殊形式,表示"第一个匹配组的内容".这个正则表达式有一个组,由最后一个.*(in (.*)$)的括号组成.这将是最后一次之后的所有内容/,所以整体结果是整个字符串被这些东西取代.(如果模式不匹配,因为没有任何/字符,则不会发生任何事情.)
拆分串入上的阵列/和.pop()关闭的最后一个元素.请注意,如果有斜杠,首先需要去除尾部斜杠.
var locationstring = window.location.pathname;
// replace() the trailing / with nothing, split on the remaining /, and pop off the last one
console.log(locationstring.replace(/\/$/, "").split('/').pop());
Run Code Online (Sandbox Code Playgroud)
如果在URL的情况下,/path/stuff/here/如果您有尾随/,如果该情况应该返回一个空字符串而不是here,修改上面的内容以.replace()从调用链中删除.我假设你想要最后一个组件而不管尾部斜杠,但可能错误地假设了.
console.log(locationstring.split('/').pop());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46925 次 |
| 最近记录: |