zoukankan      html  css  js  c++  java
  • 正则的几个应用(js)

     正则表达式真特么强大,很多场合应用起来真叫一个爽啊

      1 。连接型字符串转驼峰字符串

               

    <script>
       
          var  str='style-border-color-background';
          
          function  test(str){
               var  reg=/-(w)/g;                                //()引起来,作为正则的子项,接下来会用到
              str = str.replace(reg, function( $ , $0 ){         //$代表正则,$0代表正则的子项 [ 此处为 (w)]
                      return   $0.toUpperCase();
              });
              alert(str);
         }
    
         test(str);
    
    </script>

      2。json字符串去掉空值项

            最近遇到一个问题,前端ajax(或用 easyui )向后台 struts2 提交表单报错:could not find action or result struts ,有网友说是json字符串空值造成的(后来证明不是,是表单中的id造成的,尽管id没有重复,重新给id取名就好了,而且可以明确的是就是日期控件【easui 的日期控件】id造成的)。

            作为解决上述问题的一个尝试( 尽管失败了),记录下来这种正则表达式的写法。

            一般参数 json字符串是形如:a=1&b=2&c=&d= 的情况,开始处理吧

                      

    1  var param=$('#myForm').serialize();       //对表单序列化
    2  var regExp=/(w+)_(w+)+(=&)/g           // like :  abc_def_ghi=&
    3  var regExp2=/(?=((w+)_(w+)+=))&/    // end as: abc_def_ghi=
    4  param=param.replace(regExp,'');
    5  param=param.replace(regExp2,'');

           

      3 。查找字符串中出现最多的字符和个数

            

    <script>
           var  str='sqlsllabcstboostfucks';
           function test(str){
                  var arr = str.split('');   
                  arr.sort();                        //排序,使相同的字符紧挨在一起
                  str =  arr.join('');
    
                  var reg = /(w)1+/g;       //  1表示与前面的重复的匹配 ,+ 表示可以多次出现
                  var value='';                     //记录字符
                  var num=0;                      //记录出现次数
                 
                  str.replace(reg , function ( $ ,$0 ){
                          if($.length>num){
                                   num=$.length;
                                   value=$0;
                          }
                  });

    return '出现最多的字符是'+value+',出现的次数是'+num;
    }
            alert(test(str)); 

    </script>

      4。字符串加千分符

    <script>
          var  str='35712456';
          function test(str){
                   var reg=/(?=(?!)(w{3})+$)/g;       // (?=)表示前向声明,(?!)表示反前向声明, w表示一个字符,表示开头或结尾或空格。
    //这里结合了前向声明和反前向声明
    str=str.replace(reg,','); alert(str); } test(str); </script>
  • 相关阅读:
    python
    爬虫
    python 自动登录
    day22 cookie session 中间件 Form
    day10进程、异步IO、
    python第五课
    day21
    day20 Django
    day 19
    day18
  • 原文地址:https://www.cnblogs.com/conserdao/p/7044294.html
Copyright © 2011-2022 走看看