繁体   English   中英

验证没有任何 http 、 https 或 ftp 的 URL

[英]Validate URL without any http , https or ftp

我需要验证一个网址。

var urlPattern = new RegExp("(http|ftp|https)://[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?");

如果 URL 有httphttpsftp我可以验证。 如果该 URL 没有httpftphttps意味着我如何验证?

请尝试以下操作:

var regex = new RegExp("^(http[s]?:\\/\\/(www\\.)?|ftp:\\/\\/(www\\.)?|www\\.){1}([0-9A-Za-z-\\.@:%_\+~#=]+)+((\\.[a-zA-Z]{2,3})+)(/(.)*)?(\\?(.)*)?"); 
var without_regex = new RegExp("^([0-9A-Za-z-\\.@:%_\+~#=]+)+((\\.[a-zA-Z]{2,3})+)(/(.)*)?(\\?(.)*)?");
var str = "url";
if(regex.test(str) || without_regex.test(str)){
    alert("Successful");
}else{
    alert("No match");
}

它接受以下网址:

https://example.com
http://example.com
ftp://example.com
www.example.com
https://www.example.com
http://www.example.com
ftp://www.example.com
example.com

我希望这会有所帮助

 var url = 'http://www.Jamboo.com';
 var correctUrl= /^(ftp|http|https):\/\/[^ "]+$/.test(url);
  // true

  var r = /^(ftp|http|https):\/\/[^ "]+$/;
  r.test('http://www.Jam  boo.com');
   // false

正则表达式

/(?(?:(http|https|ftp)://)?(?:((?:[^\\W\\s]|.|-|[:]{1})+)@{1} )?((?:www.)?(?:[^\\W\\s]|.|-)+[.][^\\W\\s]{2,4}|localhost(?=/)|\\ d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3})(?::(\\d*))?([/]?[^\\ s\\?] [/]{1}) (?:/?([^\\s\\n\\?[]{}#] (?:(?=.)){1}|[^\\s\\n \\?[]{}.#] )?([.]{1}[^\\s\\?#] )?)?(?:\\?{1}([^\\s\\n#[]] ) )?([#][^\\s\\n]*)?)?/g

HTML

<input type= text id = 'url'>

JS

$('#url').on('blur', function() {
  var val = $(this).val();
  if(val.match(/\(?(?:(http|https|ftp):\/\/)?(?:((?:[^\W\s]|\.|-|[:]{1})+)@{1})?((?:www.)?(?:[^\W\s]|\.|-)+[\.][^\W\s]{2,4}|localhost(?=\/)|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?::(\d*))?([\/]?[^\s\?]*[\/]{1})*(?:\/?([^\s\n\?\[\]\{\}\#]*(?:(?=\.)){1}|[^\s\n\?\[\]\{\}\.\#]*)?([\.]{1}[^\s\?\#]*)?)?(?:\?{1}([^\s\n\#\[\]]*))?([\#][^\s\n]*)?\)?/g) != null)
      alert('success');
})

演示

交替使用:

$('#url').on('blur', function() {
    var urlPattern = new RegExp("((http|ftp|https)://)?[\w-]+(\.[\w-]+)+([\w.,@?^=%&amp;:/~+#-]*[\w@?^=%&amp;/~+#-])?");
  var val = $(this).val();
  if(urlPattern.test(val)) {
    alert('success');
  } else {
    alert('fail')
  }
})

演示

查看@Shubham Khatri 的正则表达式,我建议(当然,如果可能的话)使用wgetcurl等外部工具来查询地址并检查结果。

没有协议的 URL 的正则表达式

/^[\w.-]+(?:\.[\w\.-]+)+[\w\-\._%~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/

在这里试试

匹配没有 (http|https|www) 的正则表达式

    /^(?!https?)(?!www\.?).*\..+$/g

此正则表达式适用于

    google.com
    mail.google.com
    app.firebase.google.com
    google.com/something

此正则表达式不适用于

    www.google.com
    http://google.com
    http://www.google.com

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM