正则表达式用特殊字符验证URL

时间:2014-06-17 13:00:41

标签: jquery regex validation

我正在使用普通的jquery验证来验证用户输入是否为有效的URL

因此对此输入的验证为true,用户可以输入有效的URL

http://www.example.com/investments/stocks-shares/?source=XYZ

但是我希望用户能够输入类似

的URL
http://www.example.com/investments/stocks-shares/?source={user-code}

现在{user-code}使网址无效,用户无法输入此网址。所以我需要一个可以像这样验证URL的REGEX

http://www.example.com/investments/stocks-shares/?source={user-code}

{user-code}可以出现在网址的任何位置。我是REGEX的新手,所以感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:1)

请注意,绝对不可能单独使用regex制作完美的URL验证器。我在URL验证方面做了大量工作,我可以100%保证这一点。

可以制作一个仅适用于大多数情况的正则表达式网址验证器,但它会有一些误报和漏报。

here已经有一个简单验证器Matthew O'Riordan的答案。我只需修改他的验证器来支持花括号。

这是修改过的正则表达式和你的答案:

^((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_{}]*)#?(?:[\w]*))?)$