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

时间:2010-09-15 13:34:20

标签: javascript regex

问题

我正在尝试使用Javascript匹配URL的哈希部分。哈希将具有格式

/#\/(.*)\//

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

示例

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

// fails
myRegexp = /#\/(.*)\//

2 个答案:

答案 0 :(得分:10)

  

我正在尝试使用Javascript匹配URL的哈希部分。

是的,不要那样做。每个浏览器都内置了一个非常好的URL解析器。在位置对象(href或链接)上设置window.location,您可以从属性hostnamepathnamesearch,{读取/写入网址部分{1}}等等。

hash

如果你在哈希中放置一个类似路径的var a= document.createElement('a'); a.href= 'http://www.example.com/foo#bar#bar'; alert(a.hash); // #bar#bar - 分隔列表,我建议你跟随/

对于正则表达式,两个版本对我来说都是相同的。尾随hash.split('/')不会引起评论。如果您只想安抚一些狡猾的语法高亮显示,则可能会将//转义为/

答案 1 :(得分:2)

它没有开始评论,就像字符串中的两个斜杠一样。看这里:http://jsfiddle.net/Gr2qb/2/