深入理解JS中的substr和substring

yizhihongxing

深入理解JS中的substr和substring

在JavaScript字符串操作中,substr()substring()是两个常用的函数,都用来截取字符串。但在具体应用场景和实现方式有所不同,因此需要深入理解其差异。

substr()

substr()函数接受两个参数,第一个参数是截取的起始位置,第二个参数是截取的长度。如果省略第二个参数,则默认截取至字符串的尾部。该函数也可以接受负数参数,表示从字符串尾部开始计数。

示例1:

let str = 'Hello, world!';
let subStr = str.substr(7, 5);
console.log(subStr); // 输出 "world"

在上面的例子中,substr(7, 5)表示从第7个位置(从0开始计数)开始,截取长度为5的字符串。因此输出结果为"world"。

示例2:

let str='Hello world!';
let subStr=str.substr(-6,2);
console.log(subStr);//输出:'ld'

在上面的例子中,substr() 的第一个参数为负数,表示从字符串尾部开始截取,起始位置为倒数第6位(l字母),2表示截取的长度,即从上一个起始位置开始截取两位,输出结果为"ld"。

substring()

substr()类似,substring()也用来截取字符串,但它接受两个参数,第一个参数是截取的起始位置,第二个参数是截取的终止位置(不包含终止位置本身)。如果省略第二个参数,则默认截取至字符串的尾部。substring()不支持负数参数。

示例1:

let str = 'Hello, world!';
let subStr = str.substring(7, 12);
console.log(subStr); // 输出 "world"

在上面的例子中,substring(7, 12)表示从第7个位置(从0开始计数)开始截取,到第12个位置(不包含第12个位置),因此输出结果为"world"。

示例2:

let str='Hello world!';
let subStr=str.substring(6);
console.log(subStr);//输出:'world!'

在上面的例子中,substring() 的第一个参数表示从截取的起始位置,即位置6开始截取,由于省略了第二个参数,因此截取到了字符串尾部,输出结果为"world!"。

总结

  • substr()根据起始位置和长度截取字符串,支持负数参数,即从字符串尾部开始计数。
  • substring()根据起始位置和终止位置截取字符串,不支持负数参数。
  • 两者的区别在于第二个参数的含义,substr()表示截取的长度,substring()表示截取的终止位置。
  • 除非有特别需求,建议使用substring()函数。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:深入理解JS中的substr和substring - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • HTML最新标准HTML5总结(必看)

    HTML最新标准HTML5总结(必看) 1. 什么是HTML5? HTML5标准是HTML的第五个版本,它引入了新的语义元素、表单控件、音视频标签、Canvas绘图、Geolocation地理位置、Web Storage、Web Worker等新特性,能够更好地应对现代Web应用的需求。 HTML5相对于早期的HTML版本来说,更加简单易学,语义化更强,可编…

    JavaScript 2023年5月28日
    00
  • Js判断参数(String,Array,Object)是否为undefined或者值为空

    要判断一个变量是否为undefined或者值为空,可以根据变量的类型采用不同的方法进行判断。 判断字符串类型变量是否为空 使用if语句结合||运算符对字符串类型的变量进行判断,示例代码如下: let str = ”; if (!str || str.trim().length === 0) { console.log(‘字符串为空’); } else { …

    JavaScript 2023年6月10日
    00
  • JavaScript中子函数访问外部变量的3种解决方法

    下面我会详细讲解 “JavaScript中子函数访问外部变量的3种解决方法”的完整攻略。 问题背景 在JavaScript中,由于函数中形成了一个新的作用域,子函数无法直接访问外部环境(父函数)中的变量。而这样的问题在实际开发中是非常常见的。例如,在实际业务场景中,我们需要将一些操作封装在函数中再调用,但是这些操作中需要使用到函数外部的一些变量,所以需要找到…

    JavaScript 2023年6月10日
    00
  • 编写高性能Javascript代码的N条建议

    下面我会详细讲解一些关于编写高性能JavaScript代码的建议和注意事项。 1. 建议使用 let 和 const,避免使用 var 在 ES6 中,let 和 const 关键字用来声明变量,而 var 关键字也仍然存在。但是,相比较而言,let 和 const 会更加高效和安全一些。 let 关键字用来声明可能会被重新赋值的变量。相比 var,let …

    JavaScript 2023年5月27日
    00
  • js中判断Object、Array、Function等引用类型对象是否相等

    JavaScript 中判断对象是否相等比较复杂,因为对象具有引用类型的特性,即两个变量即使引用同一个对象,它们也不一定相等。 以下是一些常见的判断方法和示例: 1. 使用 Object.is() 方法 Object.is() 方法可以判断两个对象是否相等,与 === 操作符相似。它的返回值为一个布尔值。 以下是示例代码: const obj1 = { a:…

    JavaScript 2023年6月11日
    00
  • Javascript Math sqrt() 方法

    JavaScript中的Math.sqrt()方法是用于计算一个数的平方根的函数。以下是关于Math.sqrt()方法的完整攻略,包含两个示例。 JavaScript Math对象的sqrt方法 的sqrt()方法用于计算一个数的平方根。下面是`sqrt方法的语法: Math.sqrt(x) 其中x表示要计算平方根的数。 下面是一个sqrt()方法的示例: …

    JavaScript 2023年5月11日
    00
  • 四十九个javascript小知识实用技巧

    下面我会为您讲解“四十九个javascript小知识实用技巧”的完整攻略。 简介 “四十九个javascript小知识实用技巧”是一篇由前端开发者刘未鹏所写的文章,旨在分享一些在实际的前端开发中可能遗漏或不熟悉的javascript小知识点,帮助读者快速提高编码效率和质量。本文中的技巧包括但不限于函数、对象、数组、字符串等方面的内容,特点是简短明了,涉及实战…

    JavaScript 2023年5月17日
    00
  • 纯 JS 实现放大缩小拖拽功能(完整代码)

    现在我们来详细讲解如何使用纯 JS 实现放大缩小拖拽功能,并提供完整的代码。 1. 实现原理 放大缩小和拖拽功能的实现需要用到一些基础的 CSS 和 JS 知识: position 属性来设置元素的定位方式 transform 属性来实现元素的放大缩小 mousemove 事件来实现元素的拖拽 mouseup 事件来实现鼠标释放后停止拖拽 2. 必要的准备工…

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