美文网首页
面试题3-字符串操作

面试题3-字符串操作

作者: 幸宇 | 来源:发表于2018-03-12 08:14 被阅读4次
1. 写一个字符创转成驼峰的方法?
    列如:border-bottom-color  -> borderBottomColor
        var str='border-bottom-color';
        function test(str){
            // toUpperCase()
            var arr=str.split('-');// [border,bottom,color]
            for(var i=1;i<arr.length;i++){
           arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1)//[border,Bottom,Color]
            }
            return arr.join('');
        }
        alert(test(str))

正则方法:

            function test(str){
                var re=/-(\w)/g;
                return str.replace(re,function($0,$1){
                    return $1.toUpperCase();
                })
            }
            alert(test(str));
2.查找字符串中出现最多的字符和个数?
    列如:sdjksfssscfssdd -> 字符最多的是s,出现了7次
            var str ='sdjksfssscfssdd';
            function aa(str){
                var obj={};
                var num=0;
                var value='';
                for(var i=0;i<str.length;i++){
                    if(!obj[str[i]]){
                        obj[str[i]]=[]
                    }
                    obj[str[i]].push(str[i]);
                }
                for(attr in obj){
                    if(num<obj[attr].length){
                        num=obj[attr].length;
                        value=obj[attr][0];
                    }
                    
                }
                return '字符做多的是'+value+'出现了'+num+'次'
            }
            alert(aa(str));

正则方法:

                function aa(str){
                    var arr=str.split('');
                    arr.sort();
                    str=arr.join('');

                    var num=0;
                    var value='';

                    var re=/(\w)\1+/g;
                    str.replace(re,function($0,$1){
                        // alert($0)  全局项
                        // alert($1)   每一个子项
                        if(num<$0.length){
                            num=$0.length;
                            value=$1;
                        }
                    })
                return '字符做多的是'+value+'出现了'+num+'次'
                    
                }
                alert(aa(str));
                aa(str)
3. 如何给字符串加千分符?
            例如:3562123761 -> 3,562,123,761
      var str='562123761';
                    function aa(str){
                        var arr=[];
                        var prev='';
                        var iNum=str.length%3;
                        
                        var iNow=0;
                        var tmp='';
                        if(iNum!=0){
                            prev=str.substring(0,iNum);
                            arr.push(prev)
                        }
                        str=str.substring(iNum);

                        for(var i=0;i<str.length;i++){
                            iNow++;
                            tmp+=str[i];
                            if(iNow==3 && tmp){
                                arr.push(tmp);
                                iNow=0;
                                tmp='';
                            }
                        }
                        
                        return arr.join(',');
                    }
       alert(aa(str));

正则方法:
(?=) :前向声明
(?!) :反前向声明;
举个例子

                    var str='abacad';
                    var re=/ab/g;
                    str=str.replace(re,'*');
                    alert(str);

                    修改为:

                    var str='abacad';
                    var re=/a(?!b)/g;
                    str=str.replace(re,'*');
                    alert(str);

                    ?=b  //*bacad
                    ?!b  //ab*c*d
                    function aa(str){
                        var re=/(?=(?!\b)(\d{3})+$)/g;
                        return str.replace(re,',')
                    }
                    alert(aa(str))
4.返回一个只包含数字类型的一个数组
                列如:js123ldka78sdassdfd653 -> [123,78,653]
                    var str='js123ldka78sdassdfd653';
                    function aa(str){
                      var new_str="";
                      var arr=[];
                      var arr2=[];
                      for(var i=0;i<str.length;i++){
                          var code=str.charAt(i).charCodeAt();
                          if(code>=48&&code<=57){
                              new_str+=str.charAt(i)
                          }else{
                              new_str+=','
                          }
                      }
                      arr=new_str.split(',');
                      for(var i=0;i<arr.length;i++){
                          if(arr[i]){
                              arr2.push(arr[i])
                          }
                      }
                      return arr2;
                    }
                    alert(aa(str));

正则方法:

                        function aa(str){
                            var re=/\d+/g;
                            str=str.match(re);
                            return str;
                        }
                        alert(aa(str));

相关文章

  • 面试题3-字符串操作

    1. 写一个字符创转成驼峰的方法? 正则方法: 2.查找字符串中出现最多的字符和个数? 正则方法: 3. 如何给字...

  • 前端常见的字符串操作面试题

    前端常见的字符串操作面试题 一、字符串去重 var str = "ahahggagsssjjj"; functio...

  • 从Java认识字符串

    前言:字符串是程序中必不可少的操作,本篇将介绍字符串的由来,以及 Java 中字符串相关面试题。 一、字符串的由来...

  • 2020-05-25 第一题

    面试题58 - II. 左旋转字符串 难度简单30 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部...

  • LeetCode刷题(一)

    面试题58 - II. 左旋转字符串 题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义...

  • 前端常见的js数组操作面试题集合

    前端常见的js数组操作面试题集合 一、按要求分割数组 //实例: 将 “刘备,张飞,关羽” 一个字符串数组以“|”...

  • Python字符串高端操作

    字符串骚操作 字符串优雅操作

  • Python初学(十)

    这章学习下字符串的操作。 字符串的操作 字符串操作符: 针对字符串,Python语言提供了几个基本操作符 字符串处...

  • P244-把字符串转换成整数

    面试题33:把字符串转换为整数

  • python 字符串

    字符串操作 + 字符串连接操作 * 字符串复制操作 [] 字符串索引 通过索引访问指定位置的字符,索引从头(0)...

网友评论

      本文标题:面试题3-字符串操作

      本文链接:https://www.haomeiwen.com/subject/zdiwfftx.html