b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

js正则表达式集匹配网址url

电脑杂谈  发布时间:2020-05-14 21:09:04  来源:网络整理

正则表达式 js_js网址正则表达式_js邮箱正则表达式

DNS规定,域名中的标签由英文字母和数字组成,每个标签不超过63个字符js网址正则表达式,并且不区分大小写字母. 除连字符(-)以外,标签中不能使用其他标点符号. 级别最低的域名写在最左边,级别最高的域名写在最右边. 由多个标签组成的完整域名总数不能超过255个字符. 因此,请确认URL URL可以是常规的

方法一:

function checkUrl(urlString){
if(urlString!=""){
var reg=/(http|ftp|https)://[w-_]+(.[w-_]+)+([w-.,@?^=%&:/~+#]*[w-@?^=%&/~+#])?/;
if(!reg.test(urlString)){
alert("不是正确的网址吧,请注意检查一下");
						}
					}
}

方法二: 推荐

function IsURL(str_url){
 var strRegex = "^((https|http|ftp|rtsp|mms)?://)" 
 + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@ 
  + "(([0-9]{1,3}.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184 
  + "|" // 允许IP和DOMAIN(域名)
  + "([0-9a-z_!~*'()-]+.)*" // 域名- www. 
  + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]." // 二级域名 
  + "[a-z]{2,6})" // first level domain- .com or .museum 
  + "(:[0-9]{1,4})?" // 端口- :80 
  + "((/?)|" // a slash isn't required if there is no file name 
  + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"; 
  var re=new RegExp(strRegex); 
 //re.test()
  if (re.test(str_url)){
  return (true); 
  }else{ 
  return (false); 
  }
 }
var testUrl;
testUrl="http://harveyzeng.iteye.com/blog/1776991";
//var testUrl="http://www.jb51.net/article/1.htm";
alert(IsURL(testUrl));

我刚刚找到了一个很好的测试功能代码:

<script>
/**
 * 正则表达式判断网址是否有效
 */
 
(function(){
  "use strict";
 
  var urlDict=[
    //Bad Case
    'www.baidu.com',           //常规网址,未带协议头的地址
    'w.baidu.com',            //常规网址,短子域名
    'baidu.com',             //常规网址,仅有主域名
    '测试.com',              //非常规合法网址,中文域名不在参考之列
    '1.2',                //错误域名
    ' WWWW ',              //无效字符串
    '111测试',              //无效字符串
    //Correct Case
    'http://baidu.com',          //常规网址,仅有主域名
    'http://www.baidu.com',        //常规网址,带子域名
    'https://www.baidu.com/',       //常规网址,使用https协议头,带根目录
    'http://www.baidu.com/api',      //常规网址,有一级目录下资源
    'http://www.subdomain.baidu.com/index/subdir',   //常规网址,多级子域名,多级目录
    'http://www.www.subdomain.baidu.com/index/subdir/',//常规网址,多级子域名,多级目录,目录地址闭合
    'http://io.io'            //非常规网址,多级子域名,多级目录,目录地址闭合
  ];
 
  // 建议的正则
  function isURL(str){
    return !!str.match(/(((^https?:(?://)?)(?:[-;:&=+$,w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=+$,w]+@)[A-Za-z0-9.-]+)((?:/[+~%/.w-_]*)???(?:[-+=&;%@.w_]*)#?(?:[w]*))?)$/g);
  }
 
  // 不知道谁写的简单版的坑爹正则
  function badRegFn(str){
    return !!str.match(/(http[s]?|ftp)://[^/.]+?..+w$/g);
  }
	//jb51
	function IsURL(str_url){
   var strRegex = "^((https|http|ftp|rtsp|mms)?://)" 
   + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@ 
      + "(([0-9]{1,3}.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184 
      + "|" // 允许IP和DOMAIN(域名)
      + "([0-9a-z_!~*'()-]+.)*" // 域名- www. 
      + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]." // 二级域名 
      + "[a-z]{2,6})" // first level domain- .com or .museum 
      + "(:[0-9]{1,4})?" // 端口- :80 
      + "((/?)|" // a slash isn't required if there is no file name 
      + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"; 
      var re=new RegExp(strRegex); 
   //re.test()
      if (re.test(str_url)){
        return (true); 
      }else{ 
        return (false); 
      }
    }
 
 
  // 测试用例覆盖
  (function(){
    var ret={}; 
    var collect=function(link){
      var obj={},fnList=[isURL,badRegFn,IsURL];
      for(var i=0,j=fnList.length;i<j;i++){
        var fn=fnList[i];
        obj[fn.name]=fn.call(null,link);
      }
      return obj;
    };
 
    for(var i=0,j=urlDict.length;i<j;i++){
      ret[urlDict[i]]=collect(urlDict[i]);
    }
 
    console.log(ret),console.table(ret);
  }());
 
}());
</script>

跑步后js网址正则表达式,通过chorme的F12检查效果

上面的介绍主要是js函数的编写和判断方法. 以下是小编组织的验证URL上的一些正则表达式. 你可以参考

正则表达式

(http | ftp | https): // [w-_] + [. [w-_] +)+([w-. ,@?^ =%&: /〜+#] * [w-@?^ =%&/〜+#])?

js邮箱正则表达式_js网址正则表达式_正则表达式 js

匹配

|

不匹配

正则表达式

^ \ {2} [w-] + \(([w-] [ws] * [w-] + [$$]?$)|([w-] [$$]?$))

匹配

\ serverservice | \服务器服务| \ serv_001service $

不匹配

\我的服务器服务| \服务器服务| \服务器$服务

正则表达式

^(http | https | ftp): // [[[a-zA-Z0-9.-] +(: [a-zA-Z0-9. &%$-] +)* @)? ((25 [0-5] | 2 [0-4] [0-9] | [0-1] {1} [0-9] {2} | [1-9] {1} [0-9 ] {1} | [1-9]). (25 [0-5] | 2 [0-4] [0-9] | [0-1] {1} [0-9] {2} | [ 1 -9] {1} [0-9] {1} | [1-9] | 0). (25 [0-5] | 2 [0-4] [0-9] | [0-1] {1} [0-9] {2} | [1-9] {1} [0-9] {1} | [1-9] | 0). (25 [0-5] | 2 [0- 4] [0-9] | [0-1] {1} [0-9] {2} | [1-9] {1} [0-9] {1} | [0-9])|( [[a-zA-Z0-9-] +. )* [a-zA-Z0-9-] +. [a-zA-Z] {2,4})(: [0-9] +)? (/ [^ /] [a-zA-Z0-9. ,?'\ / +&%$#=〜_- @] *)* $

匹配

正则表达式 js_js邮箱正则表达式_js网址正则表达式

|的ftp: //用户: pass@host.com: 123

不匹配

sysrage.net

正则表达式

^([a-zA-Z]: | \\ [^ / \: *?“ <> |] + \ [^ / \: *?” <> |] +)(\ [^ / \ : *?“ <> |] +)+(. [^ / \: *?” <> |] +)$

匹配

c: Test.txt | \ serversharedTest.txt | \ serversharedTest.t

不匹配

c: 测试| \ servershared | \ serversharedTest. ?

正则表达式

^(http | https | ftp): // [[a-zA-Z0-9.-] +(: [a-zA-Z0-9. &%$-] +)* @)*( (25 [0-5] | 2 [0-4] [0-9] | [0-1] {1} [0-9] {2} | [1-9] {1} [0-9] {1} | [1-9]). (25 [0-5] | 2 [0-4] [0-9] | [0-1] {1} [0-9] {2} | [1 -9] {1} [0-9] {1} | [1-9] | 0). (25 [0-5] | 2 [0-4] [0-9] | [0-1] { 1} [0-9] {2} | [1-9] {1} [0-9] {1} | [1-9] | 0). (25 [0-5] | 2 [0-4 ] [0-9] | [0-1] {1} [0-9] {2} | [1-9] {1} [0-9] {1} | [0-9])|本地主机| ([a-zA-Z0-9-] +. )* [a-zA-Z0-9-] +. (com | edu | gov | int | mil | net | org | biz | arpa | info | name |名称|职业|航空|合作|博物馆| [a-zA-Z] {2}))(: [0-9] +)*(/($ | [a-zA-Z0-9. ,?'\ +&%$#=〜_-] +))* $

匹配

正则表达式 js_js网址正则表达式_js邮箱正则表达式

| | ftp: //用户: pass@site.com: 21 / file / dir

不匹配

site.com |

正则表达式

^([a-zA-Z] :)(\ [^ \ /: *?<>“ |] *(?<![]))*(. [a-zA-Z] {2, 6})$

匹配

C: di ___ rfi_sysle.txt | c: dirfilename.txt

不匹配

c: dirfile? name.txt

正则表达式

^([a-zA-Z0-9]([a-zA-Z0-9-] {0,61} [a-zA-Z0-9])?. )+ [a-zA-Z ] {2,6} $

匹配

正则表达式 js_js网址正则表达式_js邮箱正则表达式

regexlib.com |这是一个博物馆| 3com.com

不匹配

notadomain-.com | helloworld.c | .oops.org

正则表达式

^((((ht | f)tp(s?)): //)? (| [a-zA-Z]. )[a-zA-Z0-9-. ] +. (com | edu | gov | mil | net | org | biz |信息|名称|博物馆|我们| ca |英国)(: [0-9] +)*(/($ | [a-zA-Z0-9 . ,;?'\ +&%$#=〜_-] +))* $

匹配

: 8103 | | #blah

不匹配

|

正则表达式

b(([[w-] +: //?| www [. ]))[^ s()<>] +(?: ([wd] +)|([^ [: punct: ] s] | /)))

匹配

| | (类似)| (维基百科)| (类似(维基百科))| | | <; | <; |,| | | rdar: // 1234 | rdar: / 1234 |: 密码@示例. com: 8080 |@example.com | @ example.com: 8080 |: password@example.com

不匹配

no_ws.example.com | no_proto_or_ws.com | /relative_resource.php


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-210249-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...