Firefox URL栏使用什么正则表达式模式?

时间:2015-12-19 08:42:52

标签: javascript regex firefox gecko address-bar

我实际上是使用正则表达式匹配和其他东西来解决问题(搜索问题)。我想我会看看Google,Yahoo,Bing,Ask等的行为方式。

考虑到Firefox,Chrome,Opera和其他浏览器也有网址栏或搜索栏,我开始尝试不同的单词,然后是符号。

在Firefox中,我看到了很多不同的结果。以下是一些截图 -

^符号 - 提供一些随机结果。

^ symbol

$符号 - 也会提供随机结果。我也试过用这个添加一个字符串,它没有给出任何结果。

Dollar Symbol

()括号 - 使用时会给出正确的结果。它被认为是比较字符串的符号。

parenthesis symbols

*符号 - 这也提供了一组结果,不符合符号本身。不确定为什么会有这些不同的结果。

Star symbol

〜符号 - 这也提供了一组结果,不符合符号本身。不确定为什么会有这些不同的结果。

Tilde symbol

我很想知道为什么许多符号的行为存在这种差异,而其他字符串和/或符号按预期工作。

-

@thanksd真的不是duplicate。这是关于字符串匹配如何工作。我已经知道那部分了。我清楚地问起符号。符号如何考虑匹配。

1 个答案:

答案 0 :(得分:1)

没有主流浏览器会将您在其位置栏中键入的内容解释为正则表达式,因为普通用户不知道正则表达式。

这就是Firefox的工作原理(基本上):

  1. 选择要搜索的内容。通过查看browser.urlbar.default.behavior偏好设置以及查找special characters in the query来完成此操作:

      

    您可以使用可自定义的字符限制下拉列表中显示的结果类型。在地址栏中的任意位置包含由空格分隔的字符,以限制显示的结果。

         

    字符如下:

         
        
    • #:返回与标题中的文字匹配的结果。
    •   
    • @:返回与网址中的文字相匹配的结果。
    •   
    • *:仅返回书签中的结果。
    •   
    • ^:仅返回来自浏览器历史记录的结果。
    •   
    • +:仅返回已标记的结果。
    •   
    • ~:仅返回已键入的结果。
    •   
    • %:仅返回Firefox 4(SeaMonkey 2.1)及更高版本中提供的打开标签(可见标签,非活动标签)
    •   
  2. 在搜索某些内容时,每个以空格分隔的字符序列(上面的特殊字符除外)必须在其文本(网站标题,网址等)中出现,不区分大小写。 (序列可能会重叠。)