http://localhost:3000/myname
http://localhost:3000/myname#&gid=1&pid=1
我可以使用 location.href.split('/')[3];
获取 myname
,但第二个网址失败。如何有一个额外的逻辑来丢弃开始 # 和以下字符?
最佳答案
您只想获取位置的路径部分吗?
这不需要分割或其他字符串操作,因为所有工作已经为您完成:location.pathname
(好吧,如果您不想要前导斜杠,那么这不是全部工作。但是使用 substr(ing) 或其他方式摆脱它应该是微不足道的。)
<小时/>编辑:您在评论中询问,如果您有localhost:3000/myname/a/b/c
,它是否“仍然有效”。首先,这取决于您实际需要它做什么,是否认为它“有效”。您原来的问题对此并不清楚 - 下次,请尝试在问题中也包含此类案例和预期结果。
如果您需要单独路径之外的所有文件夹名称,那么您仍然可以使用 split - 但在 location.pathname 上使用它,那么您不必处理哈希。由于该值以斜杠开头,这将在分割结果中产生一个空的第一个元素,您可能只想使用 Array.shift 丢弃该元素:
var pathparts = location.pathname.split('/');
pathparts.shift();
console.log(pathparts);
关于javascript - 在 javascript 中使用分割并丢弃后面的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39665938/