<script type="text/javascript"> var str="abcdefbc? 11 , 123 ff,6"; var str2=new String("ghl"); console.log("typeof:"+typeof str); // typeof String console.log("typeof:"+typeof str2); //typeof Object 包装类 //一、获取类 console.log("charAt:"+str.charAt(5)); // 返回指定位置的字符,下标从0开始 f console.log("charCodeAt:"+str.charCodeAt(0)) //返回指定字符的编码 97 console.log("fromCharCode:"+String.fromCharCode(97)) //编码转换成字符 a //二、查找类 console.log("indexOf:"+str.indexOf("cba")); //返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回-1 ;-1 console.log("indexOf:"+str.indexOf("c"));//2 返回字符串中匹配的索引值 console.log("lastIndexOf:"+str.lastIndexOf("c"));//返回字符串中一个子串"最后一处"出现的索引(从右到左搜索),如果没有匹配项,返回 -1,有返回实际索引 。7 console.log("search:"+str.search("bc"));//执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1 。1 /*indexOf和search的区别:search可以匹配正则表达式,search("?"),search不可以查找?+等量词,如需只能用正则:search(/\?/)*/ console.log("search:"+str.search(/\?/));//8 console.log("match:"+str.match(/\d+/g));//11,123,6 //match 检查一个字符串匹配一个正则表达式内容,如果么没有匹配返回 null。依赖于正则,不然没有实际意义 /*replace 用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。 返回一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。 stringObject.replace(regexp/substr,replacement) */ console.log("replace:"+str.replace("bc","BC"));//aBCdefbc? 11 , 123 ff,6 console.log("replace:"+str.replace(/bc/,"BC"));//aBCdefbc? 11 , 123 ff,6 console.log("replace:"+str.replace(/bc/g,"BC"));//aBCdefBC? 11 , 123 ff,6;g表示全局查找 //三、截取类 /* slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。 stringObject.slice(start,end) 参数 描述 start 要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。 也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。 end 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。 */ console.log("slice:"+str.slice(2));//cdefbc? 11 , 123 ff,6 console.log("slice:"+str.slice(-2));//,6 console.log("slice:"+str.slice(1,6));//,cdef /* substring() 方法用于提取字符串中介于两个指定下标之间的字符。 stringObject.substring(start,stop) 与 slice() 和 substr() 方法不同的是,substring() 不接受负的参数 slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。 */ var str3="Hello world!" console.log("substring:"+str3.substring(3,7))//lo w 3-7之间的数 /* substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。 stringObject.substr(start,length) 重要事项:ECMAscript 没有对该方法进行标准化,因此反对使用它。 */ //toLowerCase、toUpperCase——大小写转换 console.log("toLowerCase:"+str3.toLowerCase())//hello world! 小写 console.log("toUpperCase:"+str3.toUpperCase())//HELLO WORLD! 大写 console.log("length:"+str3.length)//返回12,从1开始计数 /*concat() 方法用于连接两个或多个字符串。 语法 stringObject.concat(stringX,stringX,...,stringX) */ console.log("concat:"+str3.concat(str))//Hello world!abcdefbc? 11 , 123 ff,6 console.log("+ :"+str3+str)//Hello world!abcdefbc? 11 , 123 ff,6 var abc="hello world" var abc2=abc.split(""); console.log("+ :"+abc.split("").join(" "))//h e l l o w o r l d console.log("+ :"+typeof abc2)//h e l l o w o r l d console.log("+ :"+abc2.push("f"))//h e l l o w o r l d console.log("+ :"+abc2)//h e l l o w o r l d /* split() 方法用于把一个字符串分割成字符串数组。分割成数组后可以使用数组相关的使用方法,反回一个字符串数组 stringObject.split(separator,howmany) 一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。 separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。 howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。 如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 提示和注释 注释:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。 注释:String.split() 执行的操作与 Array.join 执行的操作是相反的。 */ var str4="How are you doing today?" console.log("length:"+str4.length)//24 console.log("split:"+str4.split(""))//H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,? console.log("length:"+str4.length)//24 console.log("split:"+str4.split(" "))//How,are,you,doing,today? console.log("split:"+str4.split(" ",3))//How,are,you console.log("split:"+str4.split("|",3))//How are you doing today? 没有|号,返回初始值 console.log("2:3:4:5".split(":")) //将返回["2", "3", "4", "5"] console.log("2?3?4?5".split("?")) //将返回["2", "3", "4", "5"] console.log("hello".split("")) //["h", "e", "l", "l", "o"] </script>