如何在Javascript中使用正斜杠结束正则表达式

lon*_*day 7 javascript regex

问题

我试图使用Javascript匹配URL的哈希部分.哈希将具有格式

/#\/(.*)\//
Run Code Online (Sandbox Code Playgroud)

使用"new RegExp()"创建JS正则表达式的方法很容易实现,但是我无法弄清楚如何使用标准格式来实现它,因为最后的两个正斜杠开始注释.还有另一种写这个不会发表评论的方法吗?

// works
myRegexp = new RegExp ('#\/(.*)\/');

// fails
myRegexp = /#\/(.*)\//
Run Code Online (Sandbox Code Playgroud)

bob*_*nce 10

我试图使用Javascript匹配URL的哈希部分.

是的,不要那样做.每个浏览器都内置了一个非常好的URL解析器.设置href一个位置对象(上window.location或链接),你可以读/写性能,从URL部分hostname,pathname,search,hash等.

var a= document.createElement('a');
a.href= 'http://www.example.com/foo#bar#bar';
alert(a.hash); // #bar#bar
Run Code Online (Sandbox Code Playgroud)

如果你/在哈希中放置一个类似路径的列表,我建议hash.split('/')你遵循.

至于正则表达式,两个版本对我来说都是相同的.尾随//不会引起评论.如果你只是想安抚一些狡猾的语法高亮,你可能会逃避/to \x2F.