js基础总结 二
最近不太忙,梳理下js 基础,sublime写的将就看
正则 简而言之就是描述一个事件的规则
       设置规则,来完成我们需求的一些操作。
1.定义  var reg=new RegExp(字符串规则,字符串选项);
      var reg=/规则/选项; 
2.选项  1  i  ignore--执行忽略大小写的匹配
        2  g  gloal--执行全局匹配(可以查看所有的匹配而不是只找到第一个匹配后就停止)
        3  m  mutil-line--执行多行匹配     
3.转义: \
\d  ditital    数字       [0-9]
\w  word       单词       [a-zA-Z0-9_]
s   space      空白
\D  非数字 [^0-9]
\W  非单词 [^a-zA-Z0-9_]
\S  非空白
. 任意东西
\.  点本身
\\  斜杠本身
4.量词:规定了几个
{n} 正好几个    /\d{2}/
        /\d{475}/
        /\d{2}|\d{3}/
{n,m}   最少n个,最多m个
        /\d{1,2}/
        /\d{2,500}/
        /\d{0,1}/  -> 可有可无
{n,}    最少n个,最多不限
        /\d{2,}/
        /\d{1,}/   若干
        /\d{0,}/  
{,m}    最少不限,最多m个   ×
?   {0,1}   可有可无
    /\d{0,1}/
    /\d?/
+   {1,}    若干
    /\d{1,}/
    /\d+/
*   {0,}    可以没有,有了也不限
    /\d{0,}/
    /\d*/
* 量词,默认只管前面一位
5.方括号: []
  修饰:
        ^ 开始
        $ 结尾
        \b  boundary  边界  
  [abc]    任意一个    /a|b|c/
  
  [0-9]      区间    
   
  [^abc]      排除
    
    /^a/      -> 以字母a开头的东西
    /[^a]/    -> 排除字母a
    /^[a-z]/  -> 以小写字母开头
    /^[^a-z]/ -> 以非小写字母开头
6. (1) test() 在字符串中查找符合正则的内容,若查找到返回true,反之返回false.
^ $ 优先级比 | 要高
校验年龄 0-100 var reg=/^([1-9]?\d|100)$/; reg.test('22'); // true
   (2) search() 在字符串搜索符合正则的内容,搜索到就返回出现的位置(从0开始,如果匹配的不
                只是一个字母,那只会返回第一个字母的位置), 如果搜索失败就返回 -1;
首个数字出现的位置 var reg=/\d/; 'aa1fsff'.search(reg) // 1
   (3) match()  在字符串中搜索复合规则的内容,搜索成功就返回内容,格式为数组,
                失败就返回null
                var reg=/\d+/img; 'sssa1122s2s4'.match(reg) // ['1122','2','4']
                
   (4) replace  查找符合正则的字符串,就替换成对应的字符串,返回替换后的内容。
                传入function(s,$1,$2..$99){}时,代表所有符合条件的选项,$1 ..$99
                我的理解就是()中的内容。。。。
                去掉首尾空格    
                function trim(str){
                   var re = /^\s+|\s+$/g;   
                  return str.replace(re,'');
                }
                只能输入数字  var oTxt=docuemnt.querySelector('#txt');  oTxt.oninput=function(){
                    oTxt.value=oTxt.value.replace(/\D/g,'');
                }
                
                var str='在匹配成功时,会将子表达式匹配到的内容,保存到内存中一个以数字编号的组里,可以简单的认为是对一个局部变量进行了赋值,这时就可以通过反向引用方式,引用这个局部变量的值。';
                    var reg=/匹配|保存/g;
                    str.replace(reg,function(s){
                        var tmp='';
                        for(var i=0; i< s.length; i++){
                            tmp+='*';
                        }
                        return tmp;
                    });
                    str.replace(reg,function(s){
                       return s.replace(/./g,'*');
                    })
                
                首字母大写
          
                var str='apple babab';
                str=str.replace(/\b(\w{1})(\w+)?\b/gi,function(s,$1,$2){
                    return $1.toUpperCase()+$2
                });
神奇的批量加事件
                'onclick onmouseover onmouseout'.replace(/\w+/g,function(sEv){
                    oDiv[sEv]=function(){
                       do something;
                    };
                });
                
                匹配class  \b边界
                
                 function hasClass(obj,sClass){
                    var reg=new RegExp('\\b'+sClass+'\\b');
                    return reg.test(obj.className);
                }
                解析url 
                function getQueryObject(url) {
                    url = url == null ? window.location.href : url;
                    var search = url.substring(url.lastIndexOf("?") + 1);
                    var obj = {};
                    var reg = /([^?&=]+)=([^?&=]*)/g;
                    search.replace(reg, function (rs, $1, $2) {
                        var name = decodeURIComponent($1);
                        var val = decodeURIComponent($2);               
                        val = String(val);
                        obj[name] = val;
                        return rs;
                    });
                    return obj;
                }
    js常用正则表达式  http://www.cnblogs.com/zfc2201/archive/2012/12/18/2824107.html
                    
                
                
            
        
浙公网安备 33010602011771号