js字符串截取函数substr substring slice使用对比

JS中操作字符串的时候,会用到截取字符串的函数,这篇攻略介绍substr、substring和slice三种常用的截取字符串函数,并进行对比。

substr

substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

语法:string.substr(start, length)

参数说明:
- start:必需,一个整数,规定字符串中开始抽取的位置。
- length:可选,一个整数,规定被抽取的字符数。

示例1:

const str = "This is a string.";
const newStr = str.substr(5, 2);
console.log(newStr);  // is

示例2:

const str = "This is a string.";
const newStr = str.substr(5);
console.log(newStr);  // is a string.

substring

substring() 方法用于提取字符串中介于两个指定下标之间的字符。

语法:string.substring(start, end)

参数说明:
- start:必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
- end:可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

示例1:

const str = "This is a string.";
const newStr = str.substring(5, 7);
console.log(newStr);  // is

示例2:

const str = "This is a string.";
const newStr = str.substring(5);
console.log(newStr);  // is a string.

slice

slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

语法:string.slice(start, end)

参数说明:
- start:必需,一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
- end:可选,一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回从 start 到字符串的结尾的所有字符。

示例1:

const str = "This is a string.";
const newStr = str.slice(5, 7);
console.log(newStr);  // is

示例2:

const str = "This is a string.";
const newStr = str.slice(5);
console.log(newStr);  // is a string.

对比

  • start 参数传入负数时,slice()和substring()方法会将其算作从字符串末尾开始计数的位置,而substr()方法则会将其解释为从0开始计数的位置。
  • 两种方法的参数 end 的具体作用和定义也不同。在 substring()方法中,第二个参数表示返回字符串的最后一个被截取字符的后一位的下标;同时,如果第二个参数缺省,则默认将字符串长度作为被截取字符串的结束位置。而 slice()方法则是需要传两个参数,这两个参数分别代表了被截取字符串的开始位置和结束位置;如果第一个参数为负数,则从末尾开始截取。
  • 对于截取长度为负数或为0的字符串,substr()方法在所有浏览器中都返回空字符串;而在 Firefox 和 Safari 中,slice()方法返回空字符串,而在 Opera 中返回原字符串;而 substring()方法在除 Firefox 以外的所有浏览器中都返回空字符串。

总体而言,三种方法都可以用于截取字符串,但因为参数意义的不同,所以应该根据实际需要选择合适的方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js字符串截取函数substr substring slice使用对比 - Python技术站

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

相关文章

  • JavaScript动态添加列的方法

    JavaScript动态添加列是一种常见的网页开发需求,通常用于在表格或其他HTML元素中添加新列来展示数据。下面是实现该功能的完整攻略。 步骤一:选择目标表格 首先,我们需要在HTML中选择要添加列的表格元素。通常,我们可以使用document.getElementById()方法或document.querySelector()方法来获取表格元素的引用。…

    JavaScript 2023年6月11日
    00
  • js格式化时间小结

    JS 格式化时间小结 格式化时间是前端开发经常会遇到的问题之一,不同场景下需要展现的时间格式也会有所不同。在JavaScript中,我们可以使用内置的Date对象和一些方法来格式化时间。 获取当前时间 使用内置的Date对象可以获得当前时间。比如以下代码: const now = new Date(); 格式化时间 toLocaleDateString() …

    JavaScript 2023年5月27日
    00
  • JavaScript监听一个DOM元素大小变化

    要监听一个DOM元素大小的变化,我们可以利用JavaScript提供的IntersectionObserver API来实现。IntersectionObserver设计的初衷是为了监听页面中一个元素是否进入了视窗,但它也可以用于监听元素的大小变化。 以下是监听DOM元素大小变化的详细攻略: 步骤一:创建一个IntersectionObserver实例 首先…

    JavaScript 2023年6月10日
    00
  • Vue+webpack+Element 兼容问题总结(小结)

    Vue+webpack+Element 兼容问题总结(小结) 在Vue、webpack和Element的结合使用过程中,可能会出现兼容性问题,常见的问题包括但不限于CSS样式冲突、ES6语法兼容和loader错误等,本文将对这些问题进行总结和解决。 CSS样式冲突 问题描述 Vue项目中引用Element,而Element中的样式与自己项目中的样式冲突,导致…

    JavaScript 2023年6月10日
    00
  • js 数组克隆方法 小结

    以下是关于“js 数组克隆方法 小结”的完整攻略: 标准的数组克隆方式 在JavaScript中,有两种标准的数组克隆方式: 利用ES6的扩展运算符(…) const arr1 = [1, 2, 3]; const arr2 = […arr1]; console.log(arr1); // [1, 2, 3] console.log(arr2); /…

    JavaScript 2023年5月27日
    00
  • 详解闭包解决jQuery中AJAX的外部变量问题

    我很乐意为你详细讲解“详解闭包解决jQuery中AJAX的外部变量问题”的攻略。 什么是闭包 在JavaScript中,一个函数可以定义在另一个函数中,且该内部函数可以访问包含它的外部函数的变量和参数,甚至可以访问包含它的函数的变量和参数。这种内部函数在定义时创建了一个“闭包”,它可以访问所在函数作用域中的所有变量和参数,而这些变量和参数对外面的代码是不可见…

    JavaScript 2023年6月10日
    00
  • input 日期选择功能的javascript代码

    下面就为你详细讲解“input日期选择功能的javascript代码”的完整攻略。 为 input 元素添加日期选择 使用 input 元素时,我们经常需要选择日期。在 HTML5 中,我们可以使用 input 元素的 type 属性设置为 date 来显示日期选择控件。例如: <input type="date" id=&quot…

    JavaScript 2023年5月27日
    00
  • 2014值得推荐的10个移动 Web 应用程序开发框架

    2014值得推荐的10个移动 Web 应用程序开发框架 移动 Web 应用程序开发框架是一种用于开发移动应用程序,特别是移动 Web 应用程序的工具集。移动 Web 应用程序开发框架通常包括编程语言、工具和库等资源。在2014年,有很多值得推荐的移动 Web 应用程序开发框架。在这里,我们将介绍其中的10个框架和如何使用它们来开发移动 Web 应用程序。 1…

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