Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解码Javascript变量_Javascript - Fatal编程技术网

解码Javascript变量

解码Javascript变量,javascript,Javascript,我正在尝试捕获URL中的值: www.domain.com/foo/bar#/15%22|24%22 我想要:15%22 | 24%22 我使用的是window.location.hash.split(“#”)[1]它获取数据,然后在这一点上对其进行解码 var pageType = window.location.hash.split('#') [1]; return decodeURIComponent(pageType); 然后返回15“| 24”,这就是我想要的。当我在谷歌Chrom

我正在尝试捕获URL中的值:

www.domain.com/foo/bar#/15%22|24%22
我想要:15%22 | 24%22

我使用的是
window.location.hash.split(“#”)[1]
它获取数据,然后在这一点上对其进行解码

var pageType = window.location.hash.split('#') [1];
return decodeURIComponent(pageType);

然后返回15“| 24”,这就是我想要的。当我在谷歌Chrome控制台上测试时,我得到了一个语法错误“非法返回语句”…也许这不是用这种方式测试它的正确方法。我是否遗漏了某些内容,或者应该以不同的方式处理此问题?

如果您在函数内部,则只能使用
return
。如果您只是直接运行这些行,那么就没有任何可以返回的内容

您应该始终打开浏览器的“开发工具”窗口(
F12
)。打开开发工具后,您可以单击名为“控制台”的选项卡。此窗口将始终显示您的JavaScript错误,但也可以将其用作一个窗口,用于编写消息以进行调试
console.log(message)
是将消息写入该窗口的方式。如果您查看下面的示例代码,您将看到我正在将操作结果写入控制台

此代码适用于:

var test=“www.domain.com/foo/bar#/15%22 | 24%22”;
var pageType=test.split(“#”)[1];
//删除前导斜杠
pageType=pageType.substr(1,pageType.length-1);

log(decodeURIComponent(pageType))
你能告诉我们你得到了什么吗?另外,在你的示例值中的
#
之后应该有
/
吗?很抱歉,我回去编辑我的帖子,在关闭屏幕之前从未保存过。是@talemyn,在示例中的
#
后面应该有一个
/
。我更新了我的帖子。我编辑了我的原始帖子,但在关闭屏幕之前未能保存。@Brando我已更新了我的答案以解决您的最新问题。谢谢您提供的信息。我猜我可以在定义的测试变量中添加一些正则表达式,并使用正则表达式使其更具动态性?还是有更可靠的解决方案?@Brando对于这种情况,regEx只是一个小小的改进。这个解决方案很简单。