需要一个简单的正则表达式来检查网址

时间:2013-12-23 06:36:48

标签: regex

我正在寻找它约2小时,但找不到我需要的东西。

我需要的是非常简单的:

  1. 允许:google.com,http://google.comhttps://google.com
  2. 禁止空间“goo gle.com”
  3. 有效域:我的意思是它应该有一个点“。” +任何域名(.com,.net等)
  4. 并在此之后允许任何内容:“googl.com/dsfsdf/sdfs/blablahblah/”无空格
  5. 感谢

    编辑: 谢谢大家,我不得不自己写。

        if (!/^((ftp|http|https):\/\/)?([a-z0-9_\.-]+)\.{1}([a-z0-9_\/\?\=\-\%-]+)$/.test(uri) 
    || /([\._\/\?\=\-\%-])\1/.test(uri)) {                                                     
        }
    

    ps:我是正则表达式的noob。

2 个答案:

答案 0 :(得分:1)

  • www.google.com
  • http://www.google.com
  • 的mailto:somebody@google.com
  • somebody@google.com
  • www.url-with-querystring.com/?url=has-querystring

下面的 REGEX 符合以上所有情况

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

REGEX Explanation can be found here

Working Example

答案 1 :(得分:0)

在生产产品上对我有用的东西(尚未收到任何投诉):

((www\.|(http|https|ftp|news|file)+\:\/\/)?[&#95;.a-z0-9-]+\.[a-z0-9\/&#95;:@=.+?,##%&~-]*[^.|\'|\# |!|\(|?|,| |>|<|;|\)])