顶级 URL 表单验证

Top level URL form validation

本文关键字:验证 表单 URL 顶级      更新时间:2023-09-26

如何仅使用java脚本(或PHP(顶级URL/域进行验证或过滤?它还必须接受新的域扩展,例如:

这是正确的:http://www.something.bid等。。。

这是不正确的:http://www.example1.com/blahblah/etc/something/index.php等。。。

还有子域 - 不允许!

它将在我的输入表单中使用java脚本或PHP进行验证。非常感谢!

好的,TLD的意思是:.com.org.net等...

子域意味着:www.NAMEdev.DOMAIN_NAME等...

所以网址是

[SUB_DOMAIN].domain_name.[TLD]/[Extra URL PATH|QUERY_PARAMS]

这符合www.something.bdwww是一个子域,可能您想为www子域破例。

使用此正则表达式来匹配网址, /(https?:'/'/)?(([0-9a-z'_-]+)'.)?([a-z0-9'_-]+)'.([a-z]{2,})'/?('/.+)?/

样本

var matches = 'http://www.something.bid'.match(/(https?:'/'/)?(([0-9a-z'_-]+)'.)?([a-z0-9'_-]+)'.([a-z]{2,})'/?('/.+)?/)

结果

["http://www.something.bid"、"http://"、"万维网"、"万维网"、"某物"、"投标"、未定义]

matches[3] == sub-domain
matches[4] == domain
matches[5] == tld name
matches[6] == rest path

您现在可以检查子域是空还是特定值。

function checkUrl(url){
  var regx = /(https?:'/'/)?(([0-9a-z'_-]+)'.)?([a-z0-9'_-]+)'.([a-z]{2,})'/?(.+)?/;
  var matches = url.match( regx );
  if ( matches.length == 7 
      && (!matches[3] || matches[3] == 'www') 
      && matches[4] 
      && matches[5] 
      && !matches[6] ) 
    return true;
  return false;
}
alert(checkUrl("http://something.bid/"));
alert(checkUrl("http://www.example1.com/blahblah/etc/something/index.php"));

快乐编码... :-(