• js入门之字符串常用的方法


    一、 概念理解基本包装类型

    1. 基本包装类型

    三种基本包装类型
    String 
        var s = new String('123dddd');
    Number 
    Boolean
    
    简单类型没有方法和属性 之所有可以调用方法和属性是因为会在堆上创建一个临时的基本包装类型,当使用完成之后通过null来清除, 一般不适用boolean和number基本包装类型

    2. 字符串的特点

    字符串的特点1 不可变
    当对一个字符串重新赋值的时候是重新开辟一个新的内存区
    问题: 当拼接大量字符串的时候,会有性能问题

    3. 常用字符串方法

    常用的字符串方法
    1. 字符串方法
    charAt() 获取指定位置处字符
    charCodeAt() 获取指定出字符的ASCII码
    str[0]  HTML5支持 和charAt() 等效
        console.log(s[2]);
    
    2. 字符串操作方法
    concat() 拼接字符串等效于+ +更常用
        var a = 'abc';
             var b = '123';
             console.log(a.concat(b));
    slice() 从start开始截取到end位置 end娶不到
    substring() 
    substr()
        var s = '我爱中华人民共和国';
            var new_s = s.substr(2,2);
            console.log(new_s);
    
    3.位置方法
    indexOf
    lastIndexOf()
        查找所有o出现的位置
        var s = 'abcodefoxyozzopp';
            var index = -1
            console.log(s.indexOf('o'));
            do {
                index = s.indexOf('o',index + 1);
                if (index !== -1) {
                    console.log(index);
                }
            } while (index !== -1);
    
    4. 去除空白
    trim()   只能去除字符串前后的空白
    
    5. 大小写转换方法
    to(Locale)UpperCase()
    to(Locale)LowerCase()
        var str = 'abcDeFG';
             console.log(str.toLowerCase())
             console.log(str.toUpperCase())
    
    6. 其它
    search()
    replace()  只会替换第一个找到的字符串
        替换字符串中所有的o为!
        var s = 'abcodefoxyozzopp';
            var new_s;
            var index = -1;
            do {
                index = s.indexOf('o', index + 1);
                if (index !== -1) {
                    s = s.replace('o', '!');
    
                }
            } while (index !== -1);
    
            console.log(s);
    
    
    split()
        var s = '   abc   xyz    a   123   ';
            s = s.split(' ');
            console.log(s.join(''));
    
    
    查找次数最多的字符串
    var s = 'abcodefoxyozzopp';
    var ch;
    var num;
    var o = {}
    for (var i = 0; i < s.length; i++) {
        var item = s.charAt(i);
        if (o[item]) {
            o[item]++;
        } else {
            o[item] = 1;
        }
    }
    num = 1;
    for (var key in o) {
        if (num < o[key]) {
            num = o[key];
            ch = key; //次数最多的字符
        }
    }
    console.log(num, ch);
    
    案例
    获取url的请求参数 把字符串转成对象
    var url = 'https://cn.bing.com/search?q=%e7%99%be%e5%ba%a6%e4%b8%80%e4%b8%8b&qs=HS&pq=%e7%99%be%e5%ba%a6&sc=9-2&cvid=1F2309EACC5B4134A2B6C187EF4955B7&FORM=QBLH&sp=2';
             function getParams(url) {
                 var index = url.indexOf('?') + 1;
                 var params = url.substr(index);
                 var arr = params.split('&');
                 var o = {};
                 for (var i = 0; i < arr.length; i++) {
                     var tmpArr = arr[i].split('=');
                     var key = tmpArr[0];
                     var value = tmpArr[1];
                     o[key] = value;
                 }
                 return o;
             }
             var obj = getParams(url);
             console.log(obj);
  • 相关阅读:
    [原]Eclipse 安装SVN、Maven插件(补充)
    [原]几个云笔记的简单比较
    [原]Unity3d中奇怪的编译错误
    [原]unity中WWW isDone方法只能在主线程中调用
    C语言。格式化符号
    Unity iOS Guideline 1.3
    AR增强现实 之Metaio For Unity 开发 之HelloWorld
    Unity 4.6 bate 20 or 4.5.5 +vuforia3.0.9 发布到真机错误 解决
    服务器端Ajax异步分页类,基本通用分页类
    从数据库中读取数据并写入到Excle电子表格之2
  • 原文地址:https://www.cnblogs.com/guniang/p/11987708.html
Copyright © 2020-2023  润新知