代码之家  ›  专栏  ›  技术社区  ›  lonesomeday

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

  •  7
  • lonesomeday  · 技术社区  · 14 年前

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

    /#\/(.*)\//
    

    使用创建JS正则表达式的“new RegExp()”方法很容易实现,但我不知道如何使用标准格式实现,因为末尾的两个正斜杠开始一个注释。有没有别的方法写这个不会引起评论?

    例子

    // works
    myRegexp = new RegExp ('#\/(.*)\/');
    
    // fails
    myRegexp = /#\/(.*)\//
    
    2 回复  |  直到 14 年前
        1
  •  10
  •   bobince    14 年前

    我正在尝试使用Javascript匹配URL的散列部分。

    href 在location对象上( 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
    

    如果你把一条路 / -我建议在散列列表中单独列出 hash.split('/') 跟随。

    至于regex,这两个版本对我来说都是一样的。尾随 // 不会引起评论。如果您只是想安抚一些不可靠的语法高亮显示,那么就有可能避开 / \x2F

        2
  •  2
  •   pepkin88    14 年前

    它不是开始一个注释,就像字符串中的两个斜杠一样。看这里: http://jsfiddle.net/Gr2qb/2/