问题
我正在尝试使用 Javascript 匹配 URL 的哈希部分。哈希将具有以下格式
/#\/(.*)\//
使用创建 JS 正则表达式的“new RegExp()”方法很容易实现,但我不知道如何使用标准格式来实现,因为末尾的两个正斜杠开始注释.有没有另一种不会开始评论的写法?
示例
// works
myRegexp = new RegExp ('#\/(.*)\/');
// fails
myRegexp = /#\/(.*)\//
最佳答案
I am trying to match the hash part of a URL using Javascript.
是的,不要那样做。每个浏览器都内置了一个非常好的 URL 解析器。在位置对象(window.location
或链接)上设置 href
,您可以从属性 hostname
读取/写入 URL 部分,pathname
, search
, hash
等
var a= document.createElement('a');
a.href= 'http://www.example.com/foo#bar#bar';
alert(a.hash); // #bar#bar
如果您在散列中放置一个类似路径的 /
分隔列表,我建议使用 hash.split('/')
。
至于正则表达式,两个版本对我来说都是一样的。结尾的 //
不会引起注释。如果您只是想安抚一些狡猾的语法突出显示,您可以将 /
转义为 \x2F
。
关于javascript - 如何在 Javascript 中以正斜杠结束正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3718107/