zoukankan      html  css  js  c++  java
  • 学习篇之String()

            // 3个特殊的引用类型:Boolean,Number,String
            var s1 = "some text";
            var s2 = s1.substr(2,4); // me t
            var s3 = s1.substring(2,4); // me
            var s4 = s1.substring(2,-1); // so 负数为0  
            var s5 = s1.substr(2,-1); // me text
            console.log(s5);
    
            // 后台自动完成部分
            // (1)创建String类型的一个实例;
            // (2)在实例上调用制定的方法;
            // (2)销毁这个实例;
            // 可以将以上三个步骤想象成了下列ECMAScript;
            var s1 = new String("some text");
            var s2 = s1.substring(2);
            s1 = null;
    
            // 引用类型与基本包装类型主要区别在于对象的生存期;
            // 基本包装类型 在一行代码执行完后立即被销毁;
            // 引用数据类型 在离开作用域前都一直保存在内存中;
            var col = "red";
            col.color = "bule";
            console.log(col.color); // undefined
            console.log(typeof(col));
    
            // 将数值转换为字符创
            var num = 10;
            console.log(typeof(num)); // number
            var numStr = num.toFixed(2);
            console.log(typeof(numStr)); // string
    
            //string类型
            var stringVal = "ceshistring";
            console.log(stringVal.length);    // 11
            console.log(stringVal.charAt(0));    // c   
            // charAt() 接受字符串索引,返回字符串
            console.log(stringVal.charCodeAt(0));    // 99    
            // charCodeAt()    接受字符串索引,返回字符串的字符串编码
            console.log(stringVal[0])    // c     
            // 另一种方法
            // fromCharCode();与charCodeAt() 方法相反  string构造函数本身的一个静态方法
            var abc = String.fromCharCode(49,65,97);
            console.log(abc);
    
            // 操作字符串的方法
            // concat()
            var stringVal1 = "hello ";
            var result = stringVal1.concat("world","!");    // 可以接受多个参数
            console.log(result);    // hello world!
            console.log(stringVal1);    // hello 
    
            // slice() 复制  substring() substr()截取字符串 ; 返回一个人新的字符串,并不会修改字符串本身
            var str1 = "html css";
            console.log(str1.slice(1,3));    // tm  (为负数时,字符串的长度+负值)
            console.log(str1.substr(1,3));    // tml
            console.log(str1.substring(1,3));    // tm
    
            // 字符串位置方法
            // indexOf() 和 lastIndexOf()  搜索字符串,返回字符索引,没有返回-1,索引开始位置
            var url1 = "url(http://localhost:63342/WZDK/uploads/F3.jpg)";
            var index = url1.indexOf("(")+1;
            var lastindex = url1.lastIndexOf(")");
            console.log(url1.substring(index,lastindex));
    
            var stringVal2 = "asdasdasdasd";
            var positions = [];
            var pos = stringVal2.indexOf("a");
            while(pos > -1){
                positions.push(pos);
                pos = stringVal2.indexOf("a",pos+1);
            }
            console.log(positions);
    
            // trim()方法 ECMAScript 去除字符串两端的空格;返回一个新字符串,原字符串不会改变;
            var str2 = "  hello  ";
            console.log(str2+"-"+str2.length); //   hello  -9
            var str3 = str2.trim(    );
            console.log(str3+"-"+str3.length); //    hello-5
            
            // 大小写转换 toLowerCase()/toLocaleLowerCase() 小写转换  toUpperCase()/toLocaleUpperCase() 大学转换 
            // 针对特定时区的实现
            var low = "hello A";
            var lowa = low.toUpperCase();
            var lowb = low.toLowerCase();
            console.log(lowa);    // HELLO A
            console.log(lowb);    // hello a
    
            // 字符串的模式匹配方法
            // match() 本质上调用 RegExp 的 exec()的方法相同。接受一个参数正则表达式或 RegExp 对象。
            // 返回一个数组;
            var text = "cat,bat,sat,fat";
            var pattern = /.at/;
            var matches = text.match(pattern);
            console.log(matches);    // ["cat", index: 0, input: "cat,bat,sat,fat"]
            console.log(matches.index);    // cat
            console.log(matches[0]);    // 0
    
            // search() 参数同上,返回第一个查找到的索引,没有查到返回-1;
            var sear = text.search(/at/); 
            console.log(sear);    // 1
    
            // 替换字符串 replace(); 第一个参数可以使RegExp对象或者一个字符串(不会转化正则表达式)
            // 第二个参数可以是一个字符串或函数;
            var text1 = "cat,bat,sat,fat";
            var re1 = text1.replace("at","only");
            console.log(re1);    // conly,bat,sat,fat
            re1    = text1.replace(/at/g,"only"); // 不添加引号
            console.log(re1);    // conly,bonly,sonly,fonly
            re1 = text1.replace(/(.at)/g,"word ($1)");
            console.log(re1);    // word (cat),word (bat),word (sat),word (fat)
    
            function htmlEscape(text){
                return text.replace(/[<>"&]/g,function(match,pos,originalText){
                    switch(match){
                        case "<":
                            return "&lt;";
                        case ">":
                            return "&gt;";
                        case """:
                            return "&quot;";
                        case "&":
                            return "&amp;";
                    }
                });
            }
            document.write(htmlEscape('<p>"&hello"</p>'));
            console.log(htmlEscape('<p>"&/hello"</p>'));
    
            // split() 将一个字符串制定分割多个子字符串,保存到一个新的数组中;
            // 第一个参数分隔符可以是字符串,也可以是RegExp对象,第二个用于制定数组的大小
            var colorT = "red,blue,black,yellow";
            var col1 = colorT.split(",");
            console.log(col1);    // ["red","blue","black","yellow"]
            var col2 = colorT.split(",",3); // 超出数组,显示完整数组
            console.log(col2);    // ["red", "blue", "black"]
    
            // localeCompare() 比较两个字符串编码
  • 相关阅读:
    Java生成json
    WinForm程序执行JS代码的多种方法以及使用WebBrowser与JS交互
    聚集索引和非聚集索引的区别
    如何编写函数才能提高代码质量
    前端程序员应该知道的15个 jQuery 小技巧
    FileShare枚举的使用(文件读写锁)
    ASP.NET MVC 数据库依赖缓存的实现
    C# 调用一个按钮的Click事件(利用反射)
    解决报错“超时时间已到。超时时间已到,但是尚未从池中获取连接”的方案
    关于浏览器URL中出现会话验证字符说明
  • 原文地址:https://www.cnblogs.com/pangzi666/p/5607615.html
Copyright © 2011-2022 走看看