您好,我有一个文本字段,例如facebook,Instagram,Youtube,pintrest等
<form action="" name="socialPageForm" method="post" onsubmit="return validateForm()">
<input type="text" name="facebook_url" />
<input type="text" name="twitter_url" />
<input type="text" name="instagram_url" />
</form>
和像
function validateForm() {
var facebook_url = document.forms["socialPageForm"]["facebook_url"].value;
if (facebook_url == "") {
alert("Facebook Url must be filled out");
return false;
}
}
我对正则表达式了解不多,但是我在Google上搜索时发现了许多解决方案,“验证Facebook Twitter和更多...”
其中之一如下:
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';
但是我的问题是:有没有办法仅使用单个正则表达式来验证所有社交网站?
大多数社交用户都有以下用户名facebook.com/johnDoe, twitter.com/johnDoe, instagram.com/johnDoe
:因此,我们只需要更改正则表达式中的名称,它便会应用于所有社交媒体网站。
它并不重要,它是使用php,jquery或javascript制作的。
The motto is to only validate.
此正则表达式将对您的所有3个网站都适用:
(https?:\/\/)?((w{3}\.)?)(twitter|facebook|instagram)\.com\/(#!\/)?[a-zA-Z0-9_]+
修改为 validateForm():
function validateSiteURL(siteURL)
{
var pattern = "(https?:\/\/)?((w{3}\.)?)(twitter|facebook|instagram)\.com\/(#!\/)?[a-zA-Z0-9_]+";
var re = new RegExp(pattern);
if (re.test(siteURL))
return true;
return false;
}
function validateForm()
{
//Your code...
if(!validateSiteURL(facebook_url))
alert("Invalid facebook URL");
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句