RegExp URL验证

时间:2017-11-15 08:25:52

标签: javascript regex

var re = /^(https?:\/\/)?([0-9a-z\.-]+)[^-]\.([a-z]{2,9}\.?)([\/#].\S*)*$/i;


re.test("http://zcontest.ru/dir%201/dir_2/program.ext?var1=x&var2=my%20value");
re.test("http://zcontest.ru/dir%201/dir_2/program.ext&var1=x&var2=my%20value");
你好。我必须添加或更改的内容,以便URL中的参数不能以&(和号)开头,就像第二个例子一样?

1 个答案:

答案 0 :(得分:0)

我试图尽可能少地修改你的初始正则表达式,因为目前还不清楚你的目标是什么。这是正如你所问的正则表达式:

^(https?:\/\/)?([0-9a-z\.-]+)[^-]\.([a-z]{2,9}\.?)([\/#].[^?\s]*)*\?([^\t \n]*)*$

此外,如果您没有检查多行字符串,则不需要\n。另请注意,匹配不包含?的字符串,例如:

http://zcontest.ru/dir%201/dir_2/program.ext