JavaScript字符串截取

JavaScript字符串截取一、常用方法说明1.substr2.substring3.slice二、举例说明1.substr2.substring3.slice

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

substr

概述
  substr() 方法返回字符串中从指定位置开始的指定数量的字符。

语法

String str.substr(start[, length]);

参数

start
开始提取字符的位置。如果为负值,则被看作 strLength+start,其中 strLength 为字符串的长度(例如,如果 start 为 -3,则被看作 strLength-3)。

length
提取的字符数。

描述

start 是一个字符的索引。首字符的索引为 0,最后一个字符的索引为 字符串的长度减去1。substr 从 start 位置开始提取字符,提取 length 个字符(或直到字符串的末尾)。

如果 start 为正值,且大于或等于字符串的长度,则 substr 返回一个空字符串。

如果 start 为负值,则 substr 把它作为从字符串末尾开始的一个字符索引。如果 start 为负值且 abs(start) 大于字符串的长度,则 substr 使用 0 作为开始提取的索引。注意负的 start 参数不被 Microsoft JScript 所支持。

如果 length 为 0 或负值,则 substr 返回一个空字符串。如果忽略 length,则 substr 提取字符,直到字符串末尾。

案例

var str = "abcdefghij";

console.log("(1,2): "    + str.substr(1,2));   // (1,2): bc
console.log("(-3,2): "   + str.substr(-3,2));  // (-3,2): hi
console.log("(-3): "     + str.substr(-3));    // (-3): hij
console.log("(1): "      + str.substr(1));     // (1): bcdefghij
console.log("(-20, 2): " + str.substr(-20,2)); // (-20, 2): ab
console.log("(20, 2): "  + str.substr(20,2));  // (20, 2):

substring

概述
  substring() 返回字符串两个索引之间(或到字符串末尾)的子串。

语法

String str.substring(indexA[, indexB]);

参数

indexA
一个 0 到字符串长度之间的整数。

indexB
(optional) 一个 0 到字符串长度之间的整数。

描述

substring 提取从 indexA 到 indexB(不包括)之间的字符。特别地:

  • 如果 indexA 等于 indexB,substring 返回一个空字符串。
  • 如果省略 indexB,substring 提取字符一直到字符串末尾。
  • 如果任一参数小于 0 或为 NaN,则被当作 0。
  • 如果任一参数大于 stringName.length,则被当作 stringName.length。
  • 如果 indexA 大于 indexB,则 substring 的执行效果就像两个参数调换了一样。例如,str.substring(1, 0) == str.substring(0, 1)。

案例

// 假设 print 函数已被定义
var anyString = "Mozilla";

// 输出 "Moz"
console.log(anyString.substring(0,3));
console.log(anyString.substring(3,0));

// 输出 "lla"
console.log(anyString.substring(4,7));
console.log(anyString.substring(7,4));

// 输出 "Mozill"
console.log(anyString.substring(0,6));

// 输出 "Mozilla"
console.log(anyString.substring(0,7));
console.log(anyString.substring(0,10));

slice

概述
   slice()方法提取字符串中的一部分,并返回这个新的字符串。

语法

String str.slice(beginSlice[, endSlice]);

参数

beginSlice
从该索引(以 0 为基数)处开始提取原字符串中的字符。如果该参数为负数,则它表示从原字符串中的倒数第几个字符开始抽取, slice(-2)表示抽取了原字符串中的倒数第二个字符到最后一个字符(包含最后一个字符)。

endSlice
在该索引(以 0 为基数)处结束提取字符串。如果省略该参数,slice会一直提取到字符串末尾。如果该参数为负数,则它表示在原字符串中的倒数第几个字符结束抽取.。slice(-2, -1) 表示抽取了原字符串中的倒数第二个字符到最后一个字符(不包含最后一个字符,也就是只有倒数第二个字符)。

描述

slice 不修改原字符串,只会返回一个包含了原字符串中部分字符的新字符串。

slice(1,4) 提取了原字符串中的第二个字符开始直到第四个字符的所有字符 (索引为 1, 2, 3的字符)。

str.slice(2, -1) 提取第三个字符到倒数第二个字符。

案例

var str1 = 'The morning is upon us.';
var str2 = str1.slice(4, -2);
console.log(str2); // OUTPUT: morning is upon u

var str = 'The morning is upon us.';
str.slice(-3);     // returns 'us.'
str.slice(-3, -1); // returns 'us'
str.slice(0, -1);  // returns 'The morning is upon us'
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/130844.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • ffmeg_facet的意思

    ffmeg_facet的意思音频文件转码简介本文描述如何从其它格式的音频转成符合语音识别输入要求格式的音频文件。由于底层识别使用的是pcm,因此推荐直接上传pcm文件。如果上传其它格式,会在服务器端转码成pcm,调用接口的耗时会增加。语音识别仅支持以下格式:pcm(不压缩)、wav(不压缩,pcm编码)、amr(有损压缩格式);8k/16k采样率16bit位深的单声道。即:pcmwavamr格式三选一。 正常情

  • mysql 如何加索引_mysql如何添加索引

    mysql 如何加索引_mysql如何添加索引mysql添加索引的方法:可以通过【createtable】语句来添加,如【CONSTRAINTPRIMARYKEY|INDEX[][]】,表示创建一般索引。在mysql中可以在创建表(CREATETABLE)的同时创建索引;也可以在创建表后创建索引,使用CREATEINDEX语句或ALTERTABLE语句。(视频教程推荐:mysql视频教程)1、使用CREATEINDE…

  • restsharp post_JAVA substring

    restsharp post_JAVA substring1usingRestSharp;2usingRestSharp.Authenticators;3usingSystem;45namespaceHB.Common.Tools.Http6{7///8///Rest接口执行者9///10publicclassRestSharpClient:IRestSharp11{12//…

  • title的中文_上什么下仿

    title的中文_上什么下仿VeryCD主页上的标题上总有一句名言,且是每次刷新变换的,看了一下代码,是用Math.floor(Math.random()*n.length);来实现的,verycd代码中源引的文件是:http://www.verycd.com/statics/title.saying但我所使用的是Windowsserver主机,所以要引用的是js文件,我的代码在这里:http://www.lidec

  • 展频技术是如何搞定时钟信号的辐射的呢_辐射电磁波的频率

    展频技术是如何搞定时钟信号的辐射的呢_辐射电磁波的频率先前我们说了说:为什么时钟信号比数据信号更容易引起辐射超标?为什么时钟信号比数据信号更容易引起辐射超标?并且做了试验,如果认真看过的话,就会明白,周期性的信号是窄带频谱,特定的频率的幅值会很高,这对认证测试来说非常的不利。而一般时钟信号都是周期信号,这在电路中是少不了的。有没有什么办法,改造下时钟的频谱,同时又不影响功能呢?答案是有的,那就是展频技术。展频技术的应用展频技术经常用于解决辐射问题,比如我们前面说的音频功放,需要接LC滤波器。就有的厂家通过展频技术,推出不需要LC滤波器.

    2022年10月25日
  • lvm snapshot快照原理

    lvm snapshot快照原理

发表回复

您的电子邮箱地址不会被公开。

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