解码Javascript变量
我正在尝试捕获URL中的值:解码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
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只是一个小小的改进。这个解决方案很简单。