JS中的substr()和substring()函数有什么区别

简介: JS中的substr()和substring()函数有什么区别

在 JavaScript 中,substr()substring() 函数都是用于提取字符串的子串,但它们有一些区别:

  1. substr(start, length)substr() 函数从指定索引位置开始提取指定长度的字符。它接受两个参数:起始索引 start 和要提取的字符数 length。如果省略 length 参数,则会提取从起始索引到字符串末尾的所有字符。start 参数可以是负数,表示从字符串末尾开始计数。例如:

    const str = 'Hello, world!';
    const sub1 = str.substr(7, 5);     // "world"
    const sub2 = str.substr(-6);       // "world!"
    

    在上面的示例中,sub1 提取了从索引 7 开始的 5 个字符,而 sub2 提取了从倒数第 6 个字符开始到字符串末尾的所有字符。

  2. substring(start, end)substring() 函数从指定的两个索引位置之间提取子串,包括起始索引位置但不包括结束索引位置。它接受两个参数:起始索引 start 和结束索引 end。如果省略 end 参数,则会提取从起始索引到字符串末尾的所有字符。startend 参数都可以是负数,表示从字符串末尾开始计数。如果 start 大于 end,则 substring() 会交换这两个参数的值。例如:

    const str = 'Hello, world!';
    const sub1 = str.substring(7, 12);  // "world"
    const sub2 = str.substring(7);     // "world!"
    const sub3 = str.substring(-6);    // "Hello, world!"
    const sub4 = str.substring(12, 7);  // "world"(参数交换)
    

    在上面的示例中,sub1 提取了从索引 7 到索引 11 的字符,sub2 提取了从索引 7 开始的所有字符,sub3 提取了整个字符串(负数索引被视为 0),而 sub4 也提取了从索引 7 到索引 11 的字符,即使参数的顺序是颠倒的。

需要注意的是,substr()substring() 在处理负数索引和参数交换方面的行为略有不同。因此,在使用这些函数时应注意其差异,并根据具体需求选择适当的函数。

相关文章
|
7天前
|
JavaScript 前端开发
autox.js中if和while的用法区别和差异
autox.js中if和while的用法区别和差异
|
12天前
|
JavaScript API 索引
JS【详解】Set 集合 (含 Set 集合和 Array 数组的区别,Set 的 API,Set 与 Array 的性能对比,Set 的应用场景)
JS【详解】Set 集合 (含 Set 集合和 Array 数组的区别,Set 的 API,Set 与 Array 的性能对比,Set 的应用场景)
29 0
|
12天前
|
JSON JavaScript API
JS【详解】Map (含Map 和 Object 的区别,Map 的常用 API,Map与Object 的性能对比,Map 的应用场景和不适合的使用场景)
JS【详解】Map (含Map 和 Object 的区别,Map 的常用 API,Map与Object 的性能对比,Map 的应用场景和不适合的使用场景)
15 0
|
12天前
|
JavaScript
js 延时执行代码的最佳实践 —— 自定义 sleep 函数
js 延时执行代码的最佳实践 —— 自定义 sleep 函数
12 0
|
13天前
|
JavaScript
js 高频实用函数封装汇总(持续更新)
js 高频实用函数封装汇总(持续更新)
12 0
|
14天前
|
JavaScript
js 数组移除指定元素【函数封装】(含对象数组移除指定元素)
js 数组移除指定元素【函数封装】(含对象数组移除指定元素)
13 0
|
14天前
|
JavaScript
js 调试 —— 断点(含进入函数、条件断点等)
js 调试 —— 断点(含进入函数、条件断点等)
17 0
|
14天前
|
JavaScript
JS【详解】函数.bind()
JS【详解】函数.bind()
7 0
|
14天前
|
JavaScript
js 【详解】函数中的 this 指向
js 【详解】函数中的 this 指向
14 0
|
14天前
|
存储 JavaScript 前端开发