七、ES对象(三) -- String对象

一、String对象

1.1 字符串的实质
		
	在底层字符串对象实质上是以字符数组的形式存储的。
	所以数组的一些特性也适用于字符串。
	
1.2 创建字符串

			1.var str="hello world"
			2.var str=new String("hello world");
			
1.3 字符串的基本操作
	
	1、获取字符串的长度
	
	2、访问数组的方式也可以用于访问字符串,即使用下标访问字符串。
	
				原因: 字符串底层也是使用了字符数组来保存数据的。
				      所以数组的一些特性也适用于字符串。
				      
1) 获取字符串的长度

            var s="abc";
            
            //字符串属性length
            console.log(s.length);
            
		
2)使用访问数组的方式也可以用于访问字符串,即使用索引值来访问字符串
            var s="abc";
            
            //字符串属性length
            console.log(s.length);

            //字符串通过索引值访问
            console.log(s[0]);
            console.log(s[1]);

            //遍历字符串
            for(var i in s){
                console.log(s[i])
            }            
		

二、String对象基本方法

2.1 查询

		str.indexOf("ad")	   
		str.indexOf("ad",index)
							   获取字符串第一次出现的索引值。没有返回-1
		
		str.lastIndexOf("ad")	
		str.lastIndexOf("ad",index)	   
							   获取字符串最后一次出现的索引值。没有返回-1


		str.charAt(index)    
				 			   根据索引值获取指定位置的字符。
							   相当于str[index]

		str.charCodeAt(index)    
							   根据索引值获取指定位置的字符的Unicode码值。
		
		
		String.fromCharCodeAt(Unicode码值) 
							  根据unicode码值获取字符

1)str.indexOf( ) 获取字符串第一次出现的索引值

            var s="123dsds23d";

            //获取字符串第一次出现的索引值
            var index=s.indexOf("23");
            console.log(index) //1

            //从某个位置开始,获取字符串第一次出现的索引值
            var index2=s.indexOf("23",3);
            console.log(index2) //7

2)str.lastIndexOf( ) 获取字符串最后一次出现的索引值
            var s="123dsds23d";

            //获取字符串最后一次出现的索引值
            var index=s.lastIndexOf("23");
            console.log(index) //7

            //从某个位置开始,获取字符串最后一次出现的索引值
            var index2=s.lastIndexOf("23",3);
            console.log(index2) //1
3)str.charAt( ) 获取指定位置的字符
        	var s="dsdssr ";

            console.log(s.charAt(1));
            console.log(s[1]);

在这里插入图片描述

4)String.fromCharCodeAt(Unicode码值) 根据码值获取字符

            var s=String.fromCharCode(2000)
            console.log(s)

在这里插入图片描述

2.2 截取字符串

	1) str.slice() 	       截取字符串并返回【不会影响原字符串】						
			
			   str.slice(a)    截取字符串,从索引值a开始
			   str.slice(a,b)  截取字符串,从索引值a开始,到索引值b结束(不包含索引值b)

			
	2) str.substring()      截取字符串并返回,和slice类似。【不会影响原字符串】
	
				str.substring(a)    截取字符串,从索引值a开始
				str.substring(a,b)  截取字符串,从索引值a开始,到索引值b结束(不包含索引值b)


	3) str.substr()          截取字符串并返回,和以上两个方法不同。【不会影响原字符串】
			
				str.substr(a)    截取字符串,从索引值a开始
				str.substr(a,b)  截取字符串,从索引值a开始,截取b个字符。
			
	
	

	注意事项:
	
			str.slice(a,b)
			str.substring(a,b)   这两个方法类似。
						 第一个参数:截取字符串开始的索引值
						 第二个参数:可选,截取字符串结束的索引值(不包含尾部)
			
			str.substr(a,b)    
						 第一个参数:截取字符串开始的索引值
						 第二个参数:可选,截取字符的个数

1)str.slice() 截取字符串并返回【不会影响原字符串】
            var s="hello wordls";

            //从索引值2开始,截取字符串
            var s1=s.slice(2);      //ello wordls

            //从索引值2开始到索引值5结束,截取字符串
            var s2=s.slice(2,5);    //llo 
            
2)str.substring() 截取字符串并返回【不会影响原字符串】
            var s="hello wordls";

            //从索引值2开始,截取字符串
            var s1=s.substring(2);      //ello wordls
            console.log(s1)

            //从索引值2开始到索引值5结束,截取字符串
            var s2=s.substring(2,5);    //llo 
            console.log(s2)
            

在这里插入图片描述

3)str.substr() 截取字符串并返回【不会影响原字符串】
            var s="hello wordls";

            var s1=s.substr(2);      
            console.log(s1)

            var s2=s.substr(2,5);  
            console.log(s2)
            

在这里插入图片描述

2.3 拼接或拆分字符串

		str.concact()        用于拼接两个或多个字符串【不会影响原字符串】
							 作用和'+' 一样				
	    
	
	    str.split()      	 将一个字符串拆分为数组
		    	
	    		str.split(",")     根据字符串将一个字符串拆分为数组
	    		str.split("")      传入空传。切割字符。
	    		str.split(reg)     根据正则表达式将一个字符传拆分为数组
	    		
1)str.concact()用于拼接两个或多个字符串
            var s="123";
            var ss=s.concat("sa","23","@3");

            console.log(ss)

在这里插入图片描述

2)str.split( )
>>>>>> str.split("-") 根据字符串将一个字符串拆分为数组

         var ss="a-b-ew-ewe-wewe";
          var arr=ss.split("-")
         
          console.log(arr);

在这里插入图片描述

>>>>>> str.split("") 根据空字符传,切割字符
    	  var ss="a-b-ew-ewe-wewe";
          var arr=ss.split("")
         
          console.log(arr);

在这里插入图片描述

>>>>>> str.split(reg) 根据正则表达式拆分为数组
        var s="ab12cd34dx";

        var arr=s.split(/[0-9]+/);
        console.log(arr)

在这里插入图片描述

2.4 其他
				
        str.toUpperCase()	转大写
        str.toLowerCase()	转小写
		str.trim() 			去除两边空格

1)转大小写
          var ss="a-b-ew-ewe-wewe";
          
          console.log(ss.toUpperCase()) //转大写
          console.log(ss.toLowerCase()) //转小写

在这里插入图片描述

2)str.trim() 去除两边空格
          var ss=" hello  wrold     ";
          
          console.log(ss.trim())

在这里插入图片描述

三、String支持正则表达式的方法

在这里插入图片描述

3.1 split( ) 将一个字符串拆分为数组
	
	split() 将一个字符串拆分为数组
			
			1) split("xxx") 根据字符串, 将一个字符串拆分为数组
			
			2) split(reg)   根据正则表达式, 将一个字符串拆分为数组 
							 - 这个方法即使不指定全局匹配,也会全部拆分。
								 
1)split(“xxx”)

        var s="a1b1n1h1hh1h1oj1ll";

        //将字符串以1拆分
        var arr=s.split("1");
        console.log(arr);
        

在这里插入图片描述

2)split(reg)
>>>>>> 将字符串以正则表达式拆分

        var s="a1b1n1h1hh1h1oj1ll";

        //将字符串以数字拆分
        var arr=s.split(/[0-9]/);
        console.log(arr);
        

在这里插入图片描述

>>>>>> 注意:split(reg) 即使不指定全局匹配,也会全部拆分

        var s="a1b1n1h1hh1h1oj1ll";

        //将字符串以数字拆分
        var arr=s.split(/[0-9]/);
        console.log(arr);

        //将字符串以数字拆分,指定全局匹配
        var arr2=s.split(/[0-9]/g);
        console.log(arr2);

在这里插入图片描述

3.2 search( ) 查询字符串是否含有指定内容
		
		search( )   
				 查询字符串是否含有指定内容,返回第一次出现的索引值。相当于indexOf()
				
				1) search("str")  查询字符串是否含有指定内容。
				  				  返回字符串第一次出现的索引值。没有返回-12) search(reg)    根据正则表达式,查询字符串是否含有指定内容
									- 这个方法只会查找第一个,即使设置了全局匹配也没用。
				
				
1)search(“str”)

			//查询字符串是否含有指定内容,返回字符串第一次出现的索引值
            var str="abc ssds abc adc dsd aec "
            console.log(str.search("abc"))  //0
            console.log(str.search("adc"))  //13
            console.log(str.search("aec"))  //21
            
2)search(reg)
>>>>>> 根据正则表达式,查询字符串是否含有abc或adc或aec
  		
  		var s="hello abc adc aec afc";
		
		//根据正则表达式,查询字符串是否含有abc或adc或aec。
		//查到第一个返回索引值。
        console.log(s.search(/a[bde]c/));

在这里插入图片描述

>>>>>> 注意:search(reg) 即使指定了全局匹配,也只会匹配一次就会停止

            var s="hello abc adc aec afc";
			
			//根据正则表达式,查询字符串是否含有abc或adc或aec。
			//查到第一个就会停止,返回索引值。
            console.log(s.search(/a[bde]c/))
			
			//即使指定了全局匹配,也只会匹配一次就会停止
            console.log(s.search(/a[bde]c/g))

在这里插入图片描述

3.3 match( ) 根据正则表达式,将符合的内容提取出来
	
	match(reg) 
			根据正则表达式,提取字符串中符合条件的内容。返回一个数组(会将匹配的内容封装到数组中返回)
			默认情况下找到第一个符合条件的内容就会停止。
			
				
				1) match(”str“) 将符合指定的内容提取出来,返回数组。
								默认情况下找到第一个符合条件的内容就会停止。
				 
				2) match(reg)   将符合条件的内容提起出来,返回数组。
									
									- 默认情况下找到第一个符合条件的内容就会停止。
 									- 我们可以设置正则表达式的全局模式,这样就可以匹配所有内容。
												match(/reg/g) 
						
						
1) match(“str”)
>>>>>> 将符合条件的内容提取出来,返回数组
        var s="bafvadfads";
		
		//将符合条件的内容提取出来,返回数组	
        var arr=s.match("a");
        console.log(arr); //[a]
        
>>>>>> 将符合条件的内容提取出来,返回数组,默认匹配到第一个就会停止
        var s="bafvadfads";
        
		//将符合条件的内容提取出来,返回数组
		//默认匹配到第一个就会停止	
        var arr=s.match("a");
        console.log(arr);  //[a]
        
2) match(reg)
>>>>>> match(reg) 根据正则表达式,将符合条件的内容提取出来。默认匹配到一个就会停止
      	var s="bafvadfads";
		
		//将符合条件的内容提取出来,返回数组
		//默认匹配到第一个就会停止	
        var arr=s.match(/a/);
        console.log(arr); //[a]
>>>>>> 我们可以设置正则表达式的全局模式,这样就可以匹配所有内容。

        var s="bafvadfads";

        var arr=s.match(/a/g);

        console.log(arr); //[a,a,a]
        

在这里插入图片描述

3.4 replace( ) 替换内容
		
		replace(old ,newStr) 
				将指定的内容替换为新的内容
								
				
				1) replace("str",newStr) 将指定的字符串替换为新的内容
										  默认只会替换第一个。不会全部替换
				
				2) replace(reg,newStr) 根据正则表达式, 将指定的内容替换为新的内容
										- 默认只会替换第一个。不会全部替换
										- 我们可以使用正则表达式的全局模式来实现全局替换。
													replace(/reg/g)
							
					
1)replace(“str”,newStr)
		1. 将指定的字符串替换为新的字符串
		2. 默认只会替换第一个。
            var s="121ewewe121ewe";

            var ss=s.replace("121","ccc")

            console.log(ss);
2) replace(reg,newStr) 根据正则表达式, 将指定的内容替换为新的内容
>>>>>> 根据正则表达式,将指定的内容替换为字符串,默认只会替换第一个匹配的
            var s="121ewewe121ewe";

            var ss=s.replace(/121/,"ccc")

            console.log(ss);

在这里插入图片描述

>>>>>> 注意:我们可以设置正则表达式的全局模式,将所有符合的字符串替换。
            var s="121ewewe121ewe";

            var ss=s.replace(/121/g,"ccc")

            console.log(ss);

在这里插入图片描述

>>>>>> 去除左右空格

    var str="    xxx    ";
    console.log("去掉左边空格",str.replace(/^\s+/,""))

    console.log("去掉右边空格",str.replace(/b+$/,""))


四、模板字符串(标签函数)

	
	ES6中引入了模板字符串,让我们告别了使用大量''+来连接字符串了写法。
	
	语法:
		1) 创建一个模板字符串,只需要使用反引号``将字符串包起来
		2) 模板字符串中的变量用${变量名}替代即可
		
1)拼接单行字符串
      		var msg="aaaaa";
            var msg2='bbbbbb';

            var text=`hello${msg}! hello ${msg2}`

            console.log(text)

在这里插入图片描述

2)拼接多行字符串
            var msg="aaaaa";
            var msg2='bbbbbb';

            var text=`hello${msg}
                        hello ${msg2}`

            console.log(text)

在这里插入图片描述

3)嵌入表达式

    <script>

      
            var text=`aaaa${1}+${2}=${1==1?1+2:1+3}`

            console.log(text)

    </script>

在这里插入图片描述

4)调用函数
       function s(){
                return "aaa";
            }
      
            var text=`zxxxx${s()}xxxx`

            console.log(text)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值