js字符串操作方法(js对象转字符串)

一、关于字符串分割1、slice(start,end);关于这个方法,一定要搞懂四个关键点:(1)截取字符串时不包括下标为end的元素。(2)end是可选参数,没有时,默认从start到结束的所有字符串。(3)String.slice与Array.slice区别。(4)参数为负数时,是如何处理的。其中第3点其实就是在JavaScript中字符串和数组都具有这个方法,它们…

大家好,又见面了,我是你们的朋友全栈君。

一、关于字符串分割
1、slice(start,end);
关于这个方法,一定要搞懂四个关键点:

(1)截取字符串时***不包括***下标为end的元素。

(2)end是可选参数,没有时,默认从start到结束的所有字符串。

(3)String.slice与Array.slice区别。

(4)参数为负数时,是如何处理的。

其中第3点其实就是在JavaScript中字符串和数组都具有这个方法,它们的返回结果形式不一样,一个是一段字符串,一个是一段浅复制后的数组。另外三个点接着往下看你就会明白。

2、substr(start,length);

关于这个方法,也需要搞懂几个关键点:

(1)第二个参数是子串中的字符数,必须是数值。可以没有。

(2)参数为负数时如何进行处理。

(3)最重要一点来自官网说明,如下所示:

	**ECMAscript 没有对该方法进行标准化,因此反对使用它。**

由于substr() 的参数指定的是子串的开始位置和长度,因此它可以替代 substring() 和 slice() 来使用。

3、substring(start,end);

和slice类似,关于这个方法,同样需要搞懂几个关键点:

(1)返回的字符串中***不包括*** end处的字符。

(2)参数为负数时如何进行处理。

(3)如果参数 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。

(4)如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。

这个方法的作用同样可以使用slice方法来替代。

区别和使用:

(一):都接收两个参数,slice和substring接收的是起始位置和结束位置(注意:不包括结束位置),而substr接收的则是起始位置和所要返回的字符串长度。

这里写图片描述
看一下控制台运行出来的结果,其中slice/substring都是从0开始截取3到6位置但不包括6位置的字符串”lo “,对比之下,substr截取3位置之后的6个字符串”lo wor”。

(二):需要注意substring是以两个参数中较小一个作为起始位置,较大的参数作为结束位置。
这里写图片描述

上面这个(6,3)会默认变成(3,6)将小的当起始位置来处理。

(三):参数为负数时如何解析。

(我认为这种负数的情况就应该在标准中禁止掉,参数中有负数时直接报错就行,可现在竟然能为负数,那我们只有两条出路:1,避免在code的时候出现它;2,就是今天我们要做的,彻底搞懂它。一次性消灭掉)

slice:将字符串的长度与对应的负数相加,结果作为参数。

substr:只会将第一个参数与字符串长度相加后的结果作为第一个参数(第一个参数为负数)。

substring:直接将负参数直接转成0。

第一,先看一个参数的情况:

这里写图片描述

解释一下上面的结果:字符串长度是11,(11-3=8),所以slice(-3)和substr(-3)从下标为8的字母开始。得到的结果就是”rld”。而substring直接将负数据转为0,所以输出结果就是”hello world”.

第二,看一下两个参数的情况:

先回忆一下上面的定义:

slice:长度与负数相加作为参数。

substring:负数直接转为0。

substr:仅将第一个参数与长度相加作为第一个参数。
这里写图片描述

解释一下输出的结果:slice(3,11-4)就是从下标3截取到下标7的字符串,这里就是”lo w”。substring(3,0),其中-4直接转成0,所以由定义从下标0截取到3,这里表示”hel”。最后一个substr第一个参数不是负数,第二个表示长度的参数为负数时,输出只能是空字符串。

4、split(字符串/正则,length);

这里写图片描述

来阐述一下。split方法把一个字符串string分割成片段创建一个字符串数组,可选参数howmany可以限制被分割的片段的数量。separator参数可以是一个字符串或一个正则表达式。

二、其它字符串处理方法

1、charAt(pos)

返回指定位置(如上pos)的字符。如果pos小于0或者大于等于字符串的长度string.length,它会返回空字符串。

var name = 'hello world';
name.chartAt(0);           --"h"

2、concat(string…)
用于连接两个或者多个字符串。相较于数组Array.concat()。其实字符串到是用的不多,主要是之前使用加号(+)会更方便一些,新语法时一步优化字符串拼接的操作。

这里写图片描述

3、indexOf(searchString,position)

在string内查找另一个字符串searchString。如果它被找到,就返回第1个匹配字符的位置,否则返回-1。

需要记住一点是:可选参数position可设置从string的某个指定的位置开始查找。
这里写图片描述

4、lastIndexOf(searchString,position)
与indexOf方法类似,只不过它是从该字符串的末尾开始查找而不是从开头。

5、localeCompare(target)
用来比较两个字符串,返回比较结果数字。如果stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果 stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。
这里写图片描述

6、match(regexp)

match方法让字符串和一个正则表达式进行匹配。它依据g标识来决定如何进行匹配。如果没有g标识,那么调用string.match(regexp)的结果与调用regexp.exec(string)的结果相同。带g标识返回的是一个结果数组,

7、replace(searchValue,replaceValue)
作用:replace方法对string进行查找和替换操作,并返回一个新的字符串。

取值:而参数searchValue可以是一个字符串或者一个正则表达式对象。

第一种情况:如果searchValue是一个字符串,那么searchValue只会在第1次出现 的地方被替换

这里写图片描述

原文

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125523.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java 取余 小数_Java小数取余问题求助「建议收藏」

    java 取余 小数_Java小数取余问题求助「建议收藏」2016-09-0101:19最佳答案楼上的全不明白楼主的意思,楼主要的是算法,不是程序你们懂吗!!!我只能说你们不懂什么叫真正的算法,你们只是计算机的傀儡,我看了你们回答非常生气,高校教出来的就是这种“人才”,连算法都不懂。还不如我一高中生。严重BS楼上的,尤其是说java语言的那位。我来告诉你这个问题用递推解决首先要你承认一个公式,我是习惯pascal语言的,c++怕写错,反正只是算法,你忍…

    2022年6月6日
    45
  • 散列/散列函数「建议收藏」

    散列/散列函数「建议收藏」散列是一种用于以常数平均时间执行插入、删除和查找的技术。每个关键字被映射到从0-TableSize-1这个范围中的某个数,并且被放到适当的单元中。这种映射就叫做散列函数我认为,先用散列函数将我们所要进行操作的集合整合成散列表,是对之后的操作的一种便利。放到实际中去,我们要进行操作的集合不仅仅只是数字,例如图书馆中的书籍分类等等。而且就算是一组不连续差距较大的数字,要执行后序的插入删除和查找都是很不方

    2022年5月15日
    41
  • 电脑装机必备app_电脑装机必备的软件有哪些

    电脑装机必备app_电脑装机必备的软件有哪些每个人的电脑上都会安装各种各样的软件。不同年龄段,不同人生时期,不同工作环境下的人都会有属于自己专业的软件工具。当然大多人都会有一些共有的软件。比如360,QQ。今日无事。来和大家探讨下电脑装机软件。一般电脑装机软件我分为四类:一、装机必备类二、娱乐休闲类三、日常工具类四、工作类office系列:无论微软还是金山的WPS,

    2022年9月23日
    3
  • 信号分析与处理1「建议收藏」

    信号分析与处理1「建议收藏」(此帖引至网络资源,仅供参考学习)第一:频谱一.调用方法X=FFT(x);X=FFT(x,N);x=IFFT(X);x=IFFT(X,N)用MATLAB进行谱分析时注意:(1)函数FFT返回值的数据结

    2022年8月4日
    5
  • 手把手教你制作网页导航栏

    手把手教你制作网页导航栏手把手教你制作网页导航栏众所周知,导航栏是网页的重要组成部分,本篇文章将会带你由浅入深的制作导航栏,子菜单,样式风格变化等。导航栏的重要部分——ul标签在导航栏中的文字,都是以无序列表ul和li标签实现的。下面通过几个小例子来为大家介绍如何实现网页导航栏的制作。1.用ul标签做一个简单般的菜单样式,首先在一个div盒子里创建一个无序列表,如图所示运行结果如下图所示:2.之后我们可以让列表横过来,需要用到css的浮动样式也就是float标签。我们需要让它向左浮动如图所示:运行结果如

    2022年7月22日
    5
  • 数据库第一范式 第二范式 第三范式 BC 范式

    数据库第一范式 第二范式 第三范式 BC 范式国内绝大多数院校用的王珊的《数据库系统概论》这本教材,某些方面并没有给出很详细很明确的解释,与实际应用联系不那么紧密,你有这样的疑问也是挺正常的。我教《数据库原理》这门课有几年了,有很多学生提出了和你一样的问题,试着给你解释一下吧。(基本来自于我上课的内容,某些地方为了不过于啰嗦,放弃了一定的严谨,主要是在“关系”和“表”上)首先要明白”范式(NF)”是什么意思。按照教材中的定义,范式是“

    2022年5月20日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号