• js正则积累


    1、查找并返回标签里指定内容的<tr>...</tr>

    var getTrStr = function(a){
    var s = [];
    a.replace(
    /<(tr)[\s\S]*?\/\1>/ig, function(a){/value=[0-9][^\.].+?name=storageArrayHidden/i.test(a) && s.push(a);
    }
    );
    return s;
    }
    var trStr = '<tr><td class=c>均码</td><td class=c><input value=5.1 type=hidde name=storageArrayHidden /></td></tr><tr><td class=c>均码</td><td class=c><input type=hidden name=no></td></tr><tr><td class=c>均码</td><td class=c><input value=5 type=hidden name=storageArrayHidden></td></tr>';
    alert(getTrStr(trStr).join(
    '\n'))

    【说明】

    stringObject.replace(regexp,replacement) 介绍

    /<(tr)[\s\S]*?\/\1>/ig:匹配所有的tr标签内容(可以包含换行符,制表符等),另一种写法/<tr.+?tr>/ig(只包含单个字符)

    i:表示匹配时不分大小写字母

    g:查找所有匹配项

    \s:匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。

    \S:匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。

    *: 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。 * 等价于{0,}。

    [\s\S]*:多次匹配任何所有字符

    ? :匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等价于 {0,1}。

    \:将下一个字符标记为一个特殊字符、或一个原义字符、或一个 后向引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。

    \1:用来指定第一个子匹配,也就是匹配tr,一般都与()一起使用

    ():标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。并且有缓存起来,\1便是读取缓存中出现第二次的子表达式

    2、new RegExp(pattern, attributes) 与/pattern/及常用到的方法

     var str = '|1.2|2.3|4.5|5.6|';
    var a = str.replace(new RegExp("\\|[^|]*2[^|]*","g"),"");
    var b = str.match(new RegExp("\\|[^|]*2[^|]*","g"));
    var c = str.search(new RegExp("\\|[^|]*2[^|]*","g"));
    var d = str.replace(/\|[^|]*2[^|]*/g,"")
    var e = str.match(/\|[^|]*2[^|]*/g);
    var f = str.search(/\|[^|]*2[^|]*/g);
    

    【区别】在new RegExp(pattern, attributes)声明的正则对象里的转义字符\需要二次转义\\,如\d将写成\\d

    但是如果读取dom属性如DOM.getAttribute('pattern')时,不需要转意。
    
    

    3、对字符进行unicode编码

    var foo =  function(s){
    	return s.replace(/[\u4E00-\u9FA5]/ig,function(w){
    		return escape(w).toLowerCase().replace(/%/ig,'\\');
    	});
    
    };
    

    4、split(/pattern/)

    str.split(/\s+/g); //返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。
    

    5、返回当前页面域名

    window.location.href.match(/[^\/]*[^\/]+/g)[1]
    
  • 相关阅读:
    改进IT服务流程17步 IT管理
    ISO 17799 /27001标准简介
    风险管理_cissp
    操作安全_cissp
    isms实施步骤
    CISSP要点-第五章安全体系结构和设计
    WLC+AP,跨专线实现异地多SSID流量分流 H-REAP
    186、说一下C++左值引用和右值引用
    180、C++从代码到可执行程序经历了什么?
    177、你知道回调函数吗?它的作用?
  • 原文地址:https://www.cnblogs.com/cheche/p/1754898.html
Copyright © 2020-2023  润新知