正则表达式---匹配

<script>
    // 1.匹配 协议、域名、端口号
    var url = "http://192.168.0.61:8080/touch/index.html?game=AB01";
    var reg = new RegExp(/(\w+):\/\/([^/:]+)(:\d*)?/);
    var result = url.match(reg);
    console.log(result);           // 结果:Array[4]
    console.log(result[0]);        // 结果:http://192.168.0.61:8080 
    console.log(result[1]);        // 结果:http
    console.log(result[2]);        // 结果:192.168.0.61
    console.log(result[3]);        // 结果::8080
    console.log(result.index);     // 结果:0
    console.log(result.input);     // 结果:http://192.168.0.61:8080/touch/index.html?game=AB01
    // 解析:数组的0元素得到的是整个正则表达式匹配得到的结果,也是最终我们想要的结果。 
    // 1~3是三个子表达式的结果,即每个()匹配的结果。 
    // 1:(\w+):\/\/ 匹配“://”前的字符串(包括数字、字母、下划线和加号本身字符),配置“/”需要用转义符所以需用”\/”;如若需匹配“(”就应该用”(“。 
    // 2:([^/:]+)匹配除”/”和”:”的字符。 
    // 3:(:\d*)?, “(:\d*)”就表示匹配:以及:后面的多个数字,即端口号。”?”表示匹配这个子表示式一次或者不匹配。也就是说被匹配的字符串不含端口号也行。
</script>
<script>
    // 2.匹配 文字、图片、视频
    var str1 = "我是文本<img src='./js/01.jpg'><video src='./js/01.mp4'>浮生若梦<img src='./js/02.jpg'><video src='./js/02.mp4'>"
    var reg = /[\u4e00-\u9fa5]/g;
    var arrl = str1.match(reg);
    var text = arrl.join("");
    console.log(text);        //结果: 我是文本浮生若梦

    var imgReg = /<img.*?(?:>|\/>)/gi;
    var arr1 = str1.match(imgReg);
    var img1 = arr1[0];
    var srcReg1 = /src=[\'\"]?([^\'\"]*)[\'\"]?/i;
    var src1 = img1.match(srcReg1)[0];
    var src2 = src1.slice(5,-1);
    console.log(src2);        //结果: ./js/01.jpg

    var videoReg = /<video.*?(?:>|\/>)/gi;
    var arr2 = str1.match(videoReg);
    var video = arr2[0];
    var srcReg2 = /src=[\'\"]?([^\'\"]*)[\'\"]?/i;
    var src3 = video.match(srcReg2)[0];
    var src4 = src3.slice(5,-1);
    console.log(src4);        //结果: ./js/01.mp4
</script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值