当用户通过我的表单提交Rapidshare URL时,我正在努力确保它是有效的。
这是我迄今为止提出的正则表达式:
http://rapidshare.com/files/[0-9]+/[a-zA-Z0-9'._-]+
快速共享链接如下所示:
http://rapidshare.com/files/168501977/some_random-file.zip
我的模式匹配,但不完全正确。例如,如果我们使用这个输入:
http://rapidshare.com/files/168501977/some_random-file.zip£%^$
它仍然会使用PHP函数preg_match()
进行匹配,并让它通过,即使URL的末尾有非法符号。我希望模式匹配整个输入,而不仅仅是匹配的随机长度。
任何帮助都将不胜感激,干杯!
您需要锚定正则表达式模式。使用^
来锚定开始,使用$
来锚定结束。因此,模式变为:
^http://rapidshare.com/files/[0-9]+/[a-zA-Z0-9'._-]+$
这样可以防止字符串的部分匹配,就像生成示例一样。
使用^
和$
验证字符串的开始和结束。示例:^ht{2}p:'/{2}rapidshare'.com'/files'/'d+'/['.a-zA-Z_-]+$