【发布时间】:2018-04-19 20:27:30
【问题描述】:
我看了这个问题:
What is a good regular expression to match a URL?
并获得了投票最多的答案,即这个正则表达式:
^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
这非常适合验证 url,但是,我还需要它来允许这样的字符串:
http://www.cool.com:81/index.html?query=${query}&sortBy=${sortBy}
注意占位符字符串,例如 ${query} 和 ${sortBy}(括号内可以有任何字母 a-z)。这些稍后会替换为实际值,因此最终 url 将如下所示:
http://www.cool.com:81/index.html?query=helloworld&sortBy=population
我一直在玩这个正则表达式,看看我是否可以添加一个允许这些占位符的条件,但不幸的是我的尝试都没有成功。
我该怎么做?
编辑:
提供的重复问题没有回答如何匹配${query},而是回答了只有参数的特定网址。
【问题讨论】:
-
^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b((?:[-a-zA-Z0-9@:%_\+.~#?&//=\$\{\}])*)$ -
@dfsq:当
=${sortBy}&&或}}}}}}或$$$$$时,此正则表达式将不起作用 -
@TanDuong 我知道,但我不回答问题。原始的正则表达式不好开始。
-
@IgnacioAra 我看不出这是该问题的重复。我问的是完全不同的事情。
标签: javascript regex