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中的参数不能以&(和号)开头,就像第二个例子一样?
答案 0 :(得分:0)
我试图尽可能少地修改你的初始正则表达式,因为目前还不清楚你的目标是什么。这是正如你所问的正则表达式:
^(https?:\/\/)?([0-9a-z\.-]+)[^-]\.([a-z]{2,9}\.?)([\/#].[^?\s]*)*\?([^\t \n]*)*$
此外,如果您没有检查多行字符串,则不需要\n
。另请注意,不匹配不包含?
的字符串,例如:
http://zcontest.ru/dir%201/dir_2/program.ext