js 截断字符串

本文介绍了一种使用JavaScript的slice方法来实现字符串截断的技巧,当字符串长度超过设定值时,将多余部分替换为省略号,巧妙地解决了在显示有限空间中处理过长文本的问题。

截断字符串

(用瑞兹来截断对面的退路)

如果字符串的长度比指定的参数num长,则把多余的部分用…来表示。

切记,插入到字符串尾部的三个点号也会计入字符串的长度。

但是,如果指定的参数num小于或等于3,则添加的三个点号不会计入字符串的长度。

>>>使用slice方法,翻译转化题目要求

function truncate(str, num) {
  // 请把你的代码写在这里
  if(num>=str.length){
    return str;
  }
  else{
    if(num<=3){
    str=str.slice(0,num)+"...";
  }
  else{
    str=str.slice(0,num-3)+"...";
  }
  return str;
  } 
}
truncate("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length);

### JavaScript 字符串取方法详解 在 JavaScript 中,常用的字符串取方法主要包括 `slice()`、`substring()` 和 `substr()`。这些方法各有特点和适用场景,下面详细介绍每种方法的使用方式及其区别。 --- #### 方法一:`slice()` `slice()` 方法可以从已有的字符串中提取一段子字符串,并返回一个新字符串,不会改变原始字符串的内容。 - **语法**: ```javascript string.slice(start, end) ``` - `start`: 必需参数,表示开始取的位置(从 0 开始计数)。如果为负数,则从字符串末尾向前计算位置。 - `end`: 可选参数,表示停止取的位置(不包括该位置的字符)。如果不指定,默认到字符串末尾。 - **示例**: ```javascript let str = "hello world"; console.log(str.slice(0, 5)); // 输出: hello console.log(str.slice(-5)); // 输出: world ``` - **特性**: 支持负数索引,能够灵活地从前向后或从后向前定位字符串片段[^1]。 --- #### 方法二:`substring()` `substring()` 方法同样用于提取字符串的一部分,但它不允许使用负数作为参数。 - **语法**: ```javascript string.substring(indexStart, indexEnd) ``` - `indexStart`: 必需参数,表示开始取的位置。 - `indexEnd`: 可选参数,表示停止取的位置。如果没有提供默认到字符串末尾。 - **示例**: ```javascript let str = "hello world"; console.log(str.substring(0, 5)); // 输出: hello console.log(str.substring(6)); // 输出: world ``` - **特性**: 不允许负数索引,当 `indexStart` 大于 `indexEnd` 时会自动交换两者的值[^4]。 --- #### 方法三:`substr()` 注意:尽管 `substr()` 曾经广泛使用,但在现代浏览器中已被废弃,建议优先考虑其他替代方案。 - **语法**: ```javascript string.substr(start, length) ``` - `start`: 表示开始取的位置。 - `length`: 表示要取的字符数量。 - **示例**: ```javascript let str = "hello world"; console.log(str.substr(0, 5)); // 输出: hello console.log(str.substr(6, 5)); // 输出: world ``` - **特性**: 参数设计不同于前两种方法,第二个参数指定了取长度而非结束位置[^3]。 --- #### 其他辅助方法 除了以上核心取方法外,还有一些额外工具可以帮助完成更复杂的字符串操作: 1. **`split()`** - 功能:按照指定分隔符拆分字符串为数组。 - 示例: ```javascript let str = "apple,banana,cherry"; console.log(str.split(",")); // 输出: ['apple', 'banana', 'cherry'] ``` 2. **`indexOf()`** - 功能:查找子字符串首次出现的位置。 - 示例: ```javascript let str = "hello world"; console.log(str.indexOf("world")); // 输出: 6 ``` --- ### 总结对比表 | 方法 | 是否支持负数索引 | 结束位置含义 | 废弃状态 | |------------|------------------|----------------------|----------| | `slice()` | 支持 | 排除 | 否 | | `substring()` | 不支持 | 排除 | 否 | | `substr()` | 不支持 | 取长度 | 是 | 推荐根据实际需求选择合适的方法,通常情况下可以优先选用 `slice()` 或 `substring()` 来满足大部分场景下的字符串取需求[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值