js正则

 

部分正则:

(?:...) 表示非捕获型分组,就是不会缓存下来,留着后面再用
? 它表示重复0或1次
(...) 表示一个捕获型分组(capturing group)。一个捕获型分组将复
制它所匹配的文本,并将其放人result数组中。每个捕获型分组都将被指定一个编号。第
一个捕获型分组的编号是1,所以该分组所匹配的文本考贝将出现在result[1]中
+ 表示匹配一次或者多次
\ 表示转义
. 表示会将匹配除行结束符以外的所有字符
\d 表示数字

[^?#]

表示以一个^开始,它表示这个类包含除?和#之外的所有字符。*表示这个字符类将被匹配0次或多次。

 

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <script>
            var agreement ='http:';
            var reg = /^(?:([A-Za-z]+):)?$/;
            console.log(reg.test(agreement));//true
            
            //非捕获型分组 参考https://www.cnblogs.com/yangyang63963/p/5692992.html
            var tmp1 = "project",tmp2 = "program",tmp3 = "professional"
            var reg2 = /pro(?:gram|ject)/
            console.log(reg2.test(tmp1))//true
            console.log(reg2.test(tmp2))//true
            console.log(reg2.test(tmp3))//false
            
            var bar = "///";
            var reg3 = /(\/{0,3})/;//表示/可以重复0到3次
            console.log(reg3.test(bar));//true
            
            var hostname = "www.b-aidu.com";
            var reg4 = /([0-9.\-A-Za-z]+)/;
            console.log(reg4.test(hostname));//true
            
            var port ="::80";
            var reg5 = /(?::(\d+))?/
            console.log(reg5.test(port));//true
            
            var bar2 = "/#";
            var reg6 = /(?:\/([^?#]*))?/ //主机名后/后面可以写#
            console.log(reg6.test(bar2));//true
            
            var content = "#afsafsa";
            var reg7 = /(?:\?([^#]*))?/
            console.log(reg7.test(content));//true
            
            var content1 = "hufahifiahi4828471$@#$!%^!@%#!!"
            var reg8 = /(?:#(.*))?/;
            console.log(reg8.test(content1));//true
            
            var url = "https://www.ora.com:80/goodparts?q#fragment";
            var urlTest = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))$/
            console.log(urlTest.test(url))
            
            var parse_number = /^-?\d+(?:\.\d*)?(?:e[+\-]?\d+)?$/i;
            console.log(parse_number.test('9999.e-1'));
        </script>
    </body>
</html>

 

posted @ 2020-07-18 22:04  放学别跑啊  阅读(175)  评论(0编辑  收藏  举报