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

javascript纯文本url解析

  •  0
  • AdamB  · 技术社区  · 14 年前

    这就是我想用的 here here :

    var test = /\b(?:(?:https?|ftp|file)://www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]/;
    

    但当我尝试运行它时,会出现“意外标记|”错误。

    2 回复  |  直到 8 年前
        1
  •  1
  •   pepkin88    14 年前

    var test = /\b(?:(?:https?|ftp|file):\/\/www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i;
    

    这个 i 在结束的意思是'忽略大小写',所以这是必要的regexp。

        2
  •  0
  •   Marc B    14 年前

    你用的是 / 作为regex分隔符,并且也使用 / 在regex中(www之前),因此regex实际上在第一个/www之前终止。将其更改为:

    var test = /\b(?:(?:https?|ftp|file):\/\/www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]/;
                                         ^^^^ escape here