window.location.href.split('/')。pop()返回特殊字符而不是实际值

时间:2017-12-04 09:05:49

标签: javascript

我有以下网址:

gr-dev.indegene.com/el-gr/ο-πόνος/τι-είναι-ο-πόνος;

问题出在我做的时候:

window.location.href.split('/').pop()

我得到了一堆特殊字符,如下所示:

"%CF%84%CE%B9-%CE%B5%CE%AF%CE%BD%CE%B1%CE%B9-%CE%BF-%CF%80%CF%8C%CE%BD%CE%BF%CF%82;"

我只想获得τι-είναι-ο-πόνος而不是上述内容,我该怎么做?

2 个答案:

答案 0 :(得分:8)

使用以下代码。

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

请参阅decodeURI

window.decodeURI(window.location.href.split('/').pop());

答案 1 :(得分:3)

您获得了正确的值。有一个问题,您将获得此值的编码版本。所以你需要解码。

你可以这样做:

window.decodeURI(window.location.href.split('/').pop())

获取字符串的解码版本。

更多信息:

URL仅使用特定的允许字符,如字母字符,数字和一些在URL字符串中有意义的特殊字符。因此,任何其他角色都应编码,以免造成问题。

字符串τι-είναι-ο-πόνος不是普通字符,因此被视为特殊字符,因为它需要编码为"%CF%84%CE%B9-%CE%B5%CE%AF%CE%BD%CE%B1%CE%B9-%CE%BF-%CF%80%CF%8C%CE%BD%CE%BF%CF%82;"

因此,要恢复原始字符串,您需要解码,如上所示