javascript字符串笔记

时间:2023-01-03 21:21:15
<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>