【问题标题】:Validating Facebook and Twitter URL using jquery使用 jquery 验证 Facebook 和 Twitter URL
【发布时间】:2012-02-07 05:11:26
【问题描述】:

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

还有另外两个文件可以输入twitter页面url和facebook页面url。

如何使用 jquery 验证这些 url?

例子:

http://twitter.com/anypage

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

http://facebook.com/anypage

【问题讨论】:

  • 您要验证什么标准?喜欢:它是有效的 url、必填字段还是什么
  • 为什么不直接要求用户名而不是 URL?
  • 不需要验证我的意思是url验证,url必须是twitter页面和facebook页面

标签: javascript jquery regex


【解决方案1】:

以上解决方案/正则表达式都不够灵活。
在 jsFiddle 中查看我的 code


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));​

【讨论】:

  • 这也将匹配顶部的 facebook url - 没有任何页面 (/^(https?:\/\/)?((w{3}\.)?)facebook\.com\/*.*/i
【解决方案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");
      }
  }

对于 Twitter,只需为 Twitter URL 添加新变量

var TWurl = /^(http|https)\:\/\/(www.|)twitter.com\/.*/i;

验证:

  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

【讨论】:

  • 你可以写https?。此外,您还应该验证用户名部分(路径)
  • 我也需要这样的 twitter 页面 url 验证
  • @SLaks nt 所有人都从 https 登录。我来自墨西哥,有些人不知道那是什么,然后从普通 http 连接。
  • @MasUser 只是在另一个函数中将 Facebook.com 替换为 twitter.com 或相同
  • @Ernesto:你仍然可以写https?? 表示可选。
【解决方案3】:

像这样?

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

if (/https?:\/\/twitter\.com\/(#!\/)?[a-z0-9_]+$/i.test(str1))
    alert('Str1 has passed first regexp');

if (/https?:\/\/twitter\.com\/(#!\/)?[a-z0-9_]+$/i.test(str2))
    alert('Str2 has passed first regexp');

if (/https?:\/\/facebook\.com\/[a-z0-9_]+$/i.test(str3))
    alert('Str3 has passed second regexp');

或者验证函数http://jsfiddle.net/36Wct/2/

var str1 = 'http://twitter.com/anypage';
var str2 = 'http://twitter.com/#!/anypage';
var str3 = 'http://facebook.com/anypage';
var str4 = 'http://facebook2.com/anypage';


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

 if (/https?:\/\/facebook\.com\/[a-z0-9_]+$/i.test(url))
     return 'facebook';

 return 'unknown';
}

alert('This link is ' + validate_url(str4));

【讨论】:

    【解决方案4】:

    使用jQuery Validation 插件中的url() 方法。它检查输入的 url 是否有效。您仍然可以根据您的要求对其进行自定义(即检查页面是属于 twitter 还是 FB)。

    来源:http://docs.jquery.com/Plugins/Validation

    【讨论】:

      猜你喜欢
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2015-05-31
      相关资源
      最近更新 更多