js字符串中常用的方法你知道多少?

位流珊瑚
• 阅读 911

js中关于字符串的一些细节知识

字符串:在js中由单引号或者双引号包起来的都是字符串,由零到多个字符组成。

   var str='zhufengpeixun';
   str.length  ->13 字符串长度
   str[0] ->"z" 取第一个字符
   str[str.length-1] ->"n" 取最后一个字符
   str[100] ->undefined
   字符串中每一个字符都有一个自己对应位置的索引,也有类似于数组一样的length代表自己的长度
   typeof str
   =>"string"
   new String(str)
   =>String {"zhufengpeixun"}0: "z"1: "h"2: "u"3: "f"4: "e"5: "n"6: "g"7: "p"8: "e"9: "i"10: "x"11: "u"12: "n"length: 13__proto__: String[[PrimitiveValue]]: "zhufengpeixun"
   **`列出字符串中的每一项`**
   
    for(var i=0;i<str.length;i++){
     console.log(str[i]);
}

例子:
=>var str='zhufengpeixun';
    for(var i=0;i<str.length;i++){
     console.log(str[i]);
}
VM519:3 z
VM519:3 h
VM519:3 u
VM519:3 f
VM519:3 e
VM519:3 n
VM519:3 g
VM519:3 p
VM519:3 e
VM519:3 i
VM519:3 x
VM519:3 u
VM519:3 n

关于字符串中常用的方法

字符串都是基本数据类型,字符串的每一次操作都是值直接进行操作,不像数组一样是基于空间地址来操作,所以不存在原有字符串是否改变,字符串肯定不变。

charAt/charCodeAt
作用:charAt根据索引获取指定位置的字符,charCodeAt不仅仅获取字符,他获取字符对应的Unicode编码值(ASC II码值)
参数:索引
返回值:字符对应的编码

var str='zhufengpeixun';
undefined
str.charAt(0)
"z"
str[0]
"z"
str[100] //[x]不存在这个索引时,返回undefined
undefined
str.charAt(100) //运行机制和对象是一样的,charAt(x)不存在这个索引时,返回空字符""
""
str.charCodeAt(0) //这个索引存在时,输出这个值的字符编码
122
str.charCodeAt(100) //运行机制和对象是一样的,charAt(x)不存在这个索引时,返回空字符NaN
NaN

indexOf/lastIndexOf
基于这两个方法。可以获取第一次或者最后一次出现位置索引,有这个字符,返回大于0的索引,不包含这个字符,返回结果是-1
基于这两个,验证字符串中是否包含某个字符。

var str='zhufengpeixun';
if(str.indexOf('*')>-1){
   //条件成立说明包含*符号
}

slice
作用:str . slice( n , m) 从索引n开始找到索引为m处(不包含m),把找到的字符当做新字符串返回

var str='zhufengpeixun';
str.slice(2,3)
"u"
str.slice(2,7)
"ufeng"
str.slice(2)
"ufengpeixun"
str.slice()
"zhufengpeixun"
str.slice(-3,-1)  //-3代表从字符串末尾开始,向前3位,-3+(-1)=-2,-2代表取2位,从-3位开始向后取2位
"xu"
//和数组中的slice操作是一样的
  1.不写m是查找到字符串的末尾
  2.n/m都不写是字符串的克隆
  3.支持负数索引:用字符串的总长度+负数索引运算

substring
和slice语法一摸一样
唯一的区别是:slice支持负数索引,而substring不支持负数索引
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传js字符串中常用的方法你知道多少?

substr
也是字符串截取方法,用法是:str.substr(n,m), 从索引n开始截取n个字符
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传js字符串中常用的方法你知道多少?

toUpperCase/toLowerCase
实现大小写字母的转换,toUpperCase小写转大写,toLowerCase大写转换小写
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传js字符串中常用的方法你知道多少?

splite
和数组中的join相对应,数组中的join是把数组中一项按照指定的连接字符串,而split是把字符串按照指定的分割符,拆分成数组中的每一项。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传js字符串中常用的方法你知道多少?

replace
作用:替换字符串中原有字符
参数:原有字符,要替换新字符
返回:替换后的字符串

 //=>把“qianduan”换“前端”
var str = 'qianduan2019qianduan2020';
str = str.replace('qianduan','前端')
=>"前端2019qianduan2020"  
//=>在不使用正则的情况下,只能替换一个
str = str.replace('qianduan','前端')
"前端2019前端2020"

//=========正则方法一次性替换
var str = 'qianduan2019qianduan2020';
str = str.replace(/qianduan/g,'前端')
=>"前端2019前端2020"

字符串有很多方法:扩展 String.prototype

  • includes
  • localeCompare
  • search
  • trim

...

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Karen110 Karen110
4年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
Peter20 Peter20
4年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Stella981 Stella981
3年前
JS 苹果手机日期显示NaN问题
问题描述newDate("2019122910:30:00")在IOS下显示为NaN原因分析带的日期IOS下存在兼容问题解决方法字符串替换letdateStr"2019122910:30:00";datedateStr.repl
Wesley13 Wesley13
3年前
mysql中时间比较的实现
MySql中时间比较的实现unix\_timestamp()unix\_timestamp函数可以接受一个参数,也可以不使用参数。它的返回值是一个无符号的整数。不使用参数,它返回自1970年1月1日0时0分0秒到现在所经过的秒数,如果使用参数,参数的类型为时间类型或者时间类型的字符串表示,则是从1970010100:00:0
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
mysql用户
1\.学会能按着需求创建一个帐号2\.知道连接字符串是什么样3\.密码密码怎么恢复mysql用户权限介绍mysql用户管理 !(https://oscimg.oschina.net/oscnet/368d3c1e00a0a9515545c2962660a27a080.png)!(https://oscimg.oschin
Stella981 Stella981
3年前
JavaScript常用函数
1\.字符串长度截取functioncutstr(str,len){vartemp,icount0,patrn/^\x00\xff/,strre"";for(vari
Wesley13 Wesley13
3年前
unity将 -u4E00 这种 编码 转汉字 方法
 unity中直接使用 JsonMapper.ToJson(对象),取到的字符串,里面汉字可能是\\u4E00类似这种其实也不用转,服务器会通过类似fastjson发序列化的方式,将json转对象,获取对象的值就是中文但是有时服务器要求将传参中字符串中类似\\u4E00这种转汉字,就需要下面 publ