从头开始删除一个字符散列/磅符号

时间:2011-04-22 01:59:59

标签: javascript regex

我偶然发现this article正在谈论AJAX和jQuery,我到达了这一行

hash = hash.replace(/^.*#/, '');

其中hash的格式为#page1,#page2等......

现在我不明白为什么

hash = hash.replace(/^#/, '');

是不够的。来自Mozilla Docs

^匹配输入的开头。如果multiline标志设置为true,则也会在换行符后立即匹配。

所以单独使用这个插入符号我应该能够匹配哈希值,作者试图做什么?

3 个答案:

答案 0 :(得分:4)

您提出的正则表达式只匹配字符串开头的哈希符号,而不是其他地方。您发布的第一个正则表达式将匹配字符串中第一个哈希符号的所有内容。

答案 1 :(得分:1)

.*表示“任意数量的任何字符”,因此看起来好像作者认为某些事物可能先于octothorpe。假设你的简单模式也有效,你是正确的。

答案 2 :(得分:0)

第一个表单将删除哈希值,任何导致它的内容。所以,如果它真的是位置哈希,那应该没关系。如果你有一个完整的URL,那么你只剩下post-part。