Javascript 验证URL,但允许在参数中使用占位符字符串
我看了这个问题: 投票最多的答案是这个正则表达式:Javascript 验证URL,但允许在参数中使用占位符字符串,javascript,regex,Javascript,Regex,我看了这个问题: 投票最多的答案是这个正则表达式: ^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}和${s
^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}
,而是只包含参数的特定URL
^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)\?query=([a-z]+)&sortBy=([a-z]+)$
在第3组中,您有您的查询
,在第4组中,您的排序
请看这里:
^https?:\/\/(www\)?[-a-zA-Z0-9:%.[-a-zA-Z0-9:%.[-a-z]{2256}.[a-z]{2,4}\b(((?:[-a-zA-Z0-9:%.-+.-/=$\\\\\\\\\\}*)*)$$/code>=${sortBy&
或