js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解

那我就为你介绍一下 Javascript 中几个常用字符串相关的方法。

1. substr

substr() 方法用于截取字符串中的任意部分,并返回截取的结果。substr() 方法有两个参数,第一个参数是起始索引位置,第二个参数是截取的长度。如果不指定第二个参数,则截取到末尾。其语法如下:

str.substr(start[, length])

示例代码:

const str = 'Hello, World!'

const subStr1 = str.substr(0, 5) // 截取 'Hello'
const subStr2 = str.substr(7)    // 截取 'World!'
const subStr3 = str.substr(-6)   // 截取 'World!'

上述代码中,subStr1 截取了字符串 str 中从索引0开始长度为5的部分,即截取了 'Hello'。subStr2 截取了字符串 str 中从索引7开始到末尾的部分,即截取了 'World!'。而 subStr3 截取了字符串 str 中从索引-6开始到末尾的部分,因为负数索引从末尾算起。

2. substring

substring() 方法用于截取字符串中的任意部分,并返回截取的结果。substring() 方法有两个参数,分别表示截取的起始位置和截取的结束位置(不包括该位置)。如果省略第二个参数,则截取到末尾。其语法如下:

str.substring(indexStart[, indexEnd])

示例代码:

const str = 'Hello, World!'

const subStr1 = str.substring(0, 5) // 截取 'Hello'
const subStr2 = str.substring(7)    // 截取 'World!'

上述代码中,subStr1subStr2substr() 的使用方法和结果相同。

3. indexOf

indexOf() 方法用于查找字符串中是否包含指定的子串,并返回该子串在字符串中的第一次出现的位置索引。如果没有找到,则返回 -1。其语法如下:

str.indexOf(searchValue[, fromIndex])

示例代码:

const str = 'Hello, World!'

const index1 = str.indexOf('o')      // 返回 4,第一个出现 'o' 的位置
const index2 = str.indexOf('o', 5)   // 返回 8,从索引 5 开始查找,第一个出现 'o' 的位置
const index3 = str.indexOf('foo')    // 返回 -1,不存在 'foo' 字符串

上述代码中,index1 查找 str 中第一个出现 'o' 的位置,因为第一个 'o' 的位置是索引 4,所以返回 4。index2 从索引 5 开始查找,查找到第一个出现 'o' 的位置是索引 8,因为起始位置大于或等于字符串长度,所以直接返回 -1。index3 查找字符串中有没有 'foo' 这个子串,没有则返回 -1。

4. lastIndexOf

lastIndexOf() 方法与 indexOf() 方法类似,用于查找字符串中是否包含指定的子串,并返回该子串在字符串中最后一次出现的位置索引。如果没有找到,则返回 -1。其语法如下:

str.lastIndexOf(searchValue[, fromIndex])

示例代码:

const str = 'Hello, World!'

const index1 = str.lastIndexOf('o')      // 返回 8,最后一个出现 'o' 的位置
const index2 = str.lastIndexOf('o', 5)   // 返回 4,从索引 5 开始向前查找,最后一个出现 'o' 的位置
const index3 = str.lastIndexOf('foo')    // 返回 -1,不存在 'foo' 字符串

上述代码中,index1 查找 str 中最后一个出现 'o' 的位置,因为最后一个 'o' 的位置是索引 8,所以返回 8。index2 从索引 5 开始向前查找,查找到最后一个出现 'o' 的位置是索引 4,因为起始位置小于或等于零,所以直接返回 -1。index3 查找字符串中有没有 'foo' 这个子串,没有则返回 -1。

5. split

split() 方法用于将字符串按指定的分隔符分割成数组。其语法如下:

str.split(separator[, limit])

该方法有两个参数,separator 表示分隔符,如果省略该参数,则返回的数组仅包含字符串本身。limit 表示返回的数组长度,如果省略该参数,则返回的数组长度不作限制。示例代码:

const str = 'Hello, welcome to HTMl5!'

const arr1 = str.split(' ')     // 分割字符串,使用空格作为分隔符
const arr2 = str.split(' ', 2)  // 分割字符串,使用空格作为分隔符,返回长度为2的数组

上述代码中,arr1 使用空格作为分隔符将字符串 str 分割成了一个数组,即 ["Hello,", "welcome", "to", "HTMl5!"]arr2 同样使用空格作为分隔符分割字符串 str,但限定了返回的数组长度为2,即 ["Hello,", "welcome"]

6. replace

replace() 方法用于字符串中的子串进行替换或删除操作,并返回替换后的新字符串。其语法如下:

str.replace(regexp|substr, newSubstr|function)

该方法有两个参数,第一个参数可以是字符串或正则表达式,表示要查找的目标子串;第二个参数可以是字符串或函数,表示替换后的新子串。如果第一个参数是正则表达式,则 replace() 方法只替换第一个匹配到的子串,如果需要替换多个匹配到的子串,需要使用全局匹配 g 模式的正则表达式。示例代码:

const str = 'Hello, welcome to HTMl5!'

const newStr1 = str.replace('HTMl5', 'JavaScript')         // 替换字符串中的 HTMl5 为 JavaScript
const newStr2 = str.replace(/HTMl5/g, 'JavaScript')       // 替换字符串中的多个 HTMl5 为 JavaScript
const newStr3 = str.replace(/(\w+)\s(\w+)/, '$2 $1')      // 将字符串中的单词位置颠倒
const newStr4 = str.replace(/\s/g, '')                    // 删除字符串中的空格

上述代码中,newStr1 将字符串中的 'HTMl5' 替换成了 'JavaScript',即 'Hello, welcome to JavaScript!'。newStr2 将字符串中的所有 'HTMl5' 替换成了 'JavaScript',即 'Hello, welcome to JavaScript!'。newStr3 将字符串中的一个单词位置颠倒了,即 'Hello, to welcome HTMl5!'。newStr4 将字符串中的空格全部删除了,即 'Hello,welcometoHTMl5!'。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • Javascript Boolean prototype 属性

    以下是关于JavaScript Boolean.prototype属性的完整攻略。 JavaScript Boolean.prototype属性 JavaScript Boolean.prototype属性是Boolean对象的原型属性,它允许您向所有Boolean对象添加属性和方法。该属性是动态的,可以通过Boolean对象的实例访问。 下面是一个使用Bo…

    JavaScript 2023年5月11日
    00
  • Javascript Math tan() 方法

    JavaScript中的Math.SQRT2属性是一个常数,表示2的平方根。以下是关于Math.SQRT2属性的完整攻略,含两个示例。 JavaScript Math对象的SQRT2属性 JavaScript的SQRT2属性是一个常数,表示2的平方根。下面是SQRT2属性的语法: Math.SQRT2 下面是一个SQRT2属性的示例: console.log…

    JavaScript 2023年5月11日
    00
  • Flutter与WebView通信方案示例详解

    针对“Flutter与WebView通信方案示例详解”,我将按以下步骤来详细讲解: 简述Flutter与WebView的通信方案 示例一:Flutter通过JavaScriptChannel调用WebView中的JavaScript函数 示例二:WebView通过UrlLauncher调用Flutter函数 接下来,我将详细讲解这些内容。 1. 简述Flut…

    JavaScript 2023年5月19日
    00
  • 详解JavaScript中循环控制语句的用法

    详解JavaScript中循环控制语句的用法 在JavaScript中,循环控制语句是非常常用的语句之一。它可以帮助我们更加方便快捷地进行重复处理的操作。下面,我们就来详细讲解一下JavaScript中的循环控制语句。 JavaScript中几种常见的循环控制语句 JavaScript中常见的循环控制语句有三种:for、while、do while。 for…

    JavaScript 2023年5月27日
    00
  • JavaScript面向对象中接口实现方法详解

    JavaScript面向对象中接口实现方法详解 在JavaScript面向对象编程中,我们常常需要定义接口(interface)来规定类(class)必须实现的方法。在本篇攻略中,我们将详细讲解如何实现JavaScript中的接口。 什么是接口? 在编程中,接口是一种规范或者约束,它定义了类或者对象应该实现的方法或者属性。接口规定了类或者对象必须实现的一组方…

    JavaScript 2023年5月27日
    00
  • JavaScript读取中文cookie时的乱码问题的解决方法

    当使用JavaScript读取中文cookie时,出现乱码的问题是比较常见的。这是因为中文字符在计算机中是以Unicode编码存储,而cookie的值是被编码为字符串存储的。因此,需要将字符串转换为中文字符才能正确地读取cookie的值。 下面是解决这个问题的完整攻略: 1.设置cookie的编码方式 在服务器端设置cookie时,应该指定cookie的编码…

    JavaScript 2023年6月11日
    00
  • JS与Ajax Get和Post在使用上的区别实例详解

    来讲一下 “JS与Ajax Get和Post在使用上的区别实例详解” 的攻略。首先,我们需要了解什么是 Ajax,Ajax 全称是 Asynchronous JavaScript and XML,可以异步地向服务器发送请求并获取响应,这使得我们可以在不刷新整个页面的情况下更新部分页面和数据。 Ajax Get 和 Post 方法的区别 在 Ajax 的请求中…

    JavaScript 2023年6月11日
    00
  • jQuery实现鼠标悬停3d菜单展开动画效果

    我们来详细讲解一下“jQuery实现鼠标悬停3d菜单展开动画效果”的攻略。 环境准备 在开始之前,我们需要确保已经准备好以下环境: 安装了jQuery库,可以从官网下载或使用CDN链接; 准备好HTML结构,并引入jQuery库。 示例一:基本的3D效果 首先,我们需要实现一个基本的菜单样式,并添加一些CSS样式以实现3D效果。下面是一个示例的HTML结构:…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部