javascript - 如何在 Javascript 中以正斜杠结束正则表达式

标签 javascript regex

问题

我正在尝试使用 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/

相关文章:

javascript - 如何计算两个日期之间经过的 "quarters"的数量,其中季度不仅仅是一年中的一个季度,而是特定日期?

javascript - 如何在javascript中使用不同的参数从不同的地方调用相同的函数,并且仍然保留该函数的变量的旧值?

JavaScript 拆分字符串中包含换行符的字符串

正则表达式:匹配到第一次出现的字符

java - 正则表达式:用传递给的方法的输出替换匹配的文本

javascript - 如何使用 jQuery Mobile 确保动态 DOM 元素具有正确的 css

javascript - 当时区选择器值更改时,我如何得到通知?

javascript - 如何使用 header 在 PHP 中打开新的两个选项卡

regex - 如何在 htaccess 重写规则正则表达式中添加点?

regex - 从 perl regexp 中清除只读变量