使用jquery验证Facebook和Twitter URL

Mas*_*ser 5 javascript regex jquery

在我的应用程序中,我正在使用表单的jquery验证.

还有另外两个文件进入twitter页面url和facebook页面url.

如何使用jquery验证这些URL?

例子:

http://twitter.com/anypage

http://twitter.com/#!/anypage

http://facebook.com/anypage
Run Code Online (Sandbox Code Playgroud)

Pan*_*al. 12

上述解决方案/正则表达式都不够灵活.在jsFiddle中
检查我的代码.


var str1 = 'http://twitter.com/anypage';    //True
var str2 = 'http://twitter.com/#!/anypage'; //True


var str3 = 'http://facebook2.com/anypage'; //False

var str4 = 'http://www.facebook.com/anypage';  //True http & www
var str5 = 'http://facebook.com/anypage';      //True http 
var str6 = 'https://facebook.com/anypage';     //True https 
var str7 = 'https://www.facebook.com/anypage'; //True https & www

var str8 = 'facebook.com/anypage';             //True no protocol
var str9 = 'www.facebook.com/anypage';         //True no protocol & www



function validate_url(url)
{
  if (/^(https?:\/\/)?((w{3}\.)?)twitter\.com\/(#!\/)?[a-z0-9_]+$/i.test(url))
     return 'twitter';    

 if (/^(https?:\/\/)?((w{3}\.)?)facebook.com\/.*/i.test(url))
     return 'facebook';

 return 'unknown';
}

alert('This link is ' + validate_url(str2));?
Run Code Online (Sandbox Code Playgroud)


Edi*_*dig 2

我想这可能对你有帮助

function validFBurl(enteredURL) {
  var FBurl = /^(http|https)\:\/\/www.facebook.com\/.*/i;
  if(!enteredURL.match(FBurl)) {
      alert("This is not a Facebook URL");
      }
  else {
      alert("This IS a Facebook URL");
      }
  }
Run Code Online (Sandbox Code Playgroud)

对于 Twitter,只需为 Twitter URL 添加新的 var

var TWurl = /^(http|https)\:\/\/(www.|)twitter.com\/.*/i;
Run Code Online (Sandbox Code Playgroud)

证实:

  1. http://twitter.com/username > 正确
  2. https://twitter.com/username > 正确
  3. http://www.twitter.com/username > 正确
  4. https://www.twitter.com/username > 正确

来源: http ://www.webdeveloper.com/forum/showthread.php?t=247621