JavaScript修剪字符串的方法和技巧

 更新时间:2024年02月18日 08:47:28   作者:阳树阳树  
你在 JavaScript 代码编写中有遇到过一个你需要比较或操作处理字符串,但是在开始或者结尾有额外空格的情况吗?在这篇博客中,我将给你展示如何使用不同的方法在 JavaScript 中修剪字符串,需要的朋友可以参考下

原文链接:https://www.rajamsr.com/javascript-trim-string/

你在 JavaScript 代码编写中有遇到过一个你需要比较或操作处理字符串,但是在开始或者结尾有额外空格的情况吗?如果有,你并不孤单,很多 JS 开发者所面对的最常见的问题之一就是如何从开头或结尾移除额外的空格。这个过程叫做JS修剪字符串。这样处理之后,你就可以确保你的字符串是连续并且准确的,并且可以避免任何额外空格导致的潜在问题。

在这篇博客中,我将给你展示:

  • 如何使用不同的方法在 JavaScript 中修剪字符串
  • 按长度、字符或位置修剪字符串的 JavaScript 方法
  • JavaScript 中的修剪字符串:长度、字符和位置方法
  • 使用 JavaScript 修剪字符串的不同方法
  • JavaScript 修剪字符串并添加省略号 (...)

有点懵逼,感觉讲的意思大同小异

让我们开始吧!

JavaScript 修剪字符的方法

JavaScript 提供了三个内置的修剪字符串的方法:trim()trimStart()trimEnd()。这三个方法并不修改原来的字符串,而是返回修剪好的字符串。

换句话说,这里是原地操作。

  • trim()方法对开头和结尾去除所有的空白字符。空白字符包括空格、tabs,换行符,还有其他被视为空格的 Unicode 统一码字符
  • trimStart()方法对字符串开头去除所有的空白字符。
  • trimEnd()方法对字符串结尾去除所有的空白字符。

这三个方法并不接受任何的参数,并且它们是很容易使用的。

这里有一个使用这些方法修剪字符串的代码例子:

// Using trim() to remove whitespace from both sides of a string
let name = "  John Doe  ";
console.log(name.trim()); 
// Output: "John Doe"
// Using trimStart() to remove whitespace from the beginning of a string
console.log(name.trimStart()); 
// Output: "John Doe  "
// Using trimEnd() to remove whitespace from the end of a string
console.log(name.trimEnd()); 
// Output: "  John Doe"

通过长度来修剪 JavaScript 字符串

有时,你可能想要以具体的长度来修剪字符串,而非仅仅移除空格。

比如说,你可能想要截短一个长字符串以满足展示特定的区域,或者创造一个更长文本的总结。在这些情况里,你可以使用 JavaScript slice() 方法以具体的长度来修剪字符串。

slice()方法提取了字符串的一部分并且返回了新的字符串。这个方法接受两个参数,要提取的子字符串的索引起点和索引重点。

  • 索引起点被包含在截取部分里,索引终点不被包含。
  • 如果省略结束索引,该方法将从开始索引一直到这个字符串的结束。

这里说几个使用 slice() 的代码实例

// Using slice() to trim a string to 10 characters
let message = "JavaScript runs everywhere on everything!";
console.log(message.slice(0, 10)); 
// Output: "JavaScript"
// Using slice() to trim a string from the 4th character to the end
console.log(message.slice(4)); 
// Output: "Script runs everywhere on everything!"
// Using slice() to trim a string from the 10th to the 20th character
console.log(message.slice(10, 20)); 
// Output: " runs ever"

使用 slice() 以具体长度来修剪字符串有些优点也有缺点,优缺点如下:

优点:

  • 它很灵活,并且允许你具体到字符串分隔的起点索引和终点索引。
  • 可以处理从字符串末尾开始计数的负数索引。
  • 对任何字符都生效,而非只对空格生效

缺点:

  • JavaScript slice() 方法在字符串中间切除单词或者句子,这可能会影响字符串的可读性或意义。
  • 不会自动添加任何像省略号意义的指引器去展示这个字符串已经被修剪了。
  • 需要额外的逻辑或者计算去决定 JavaScript 子字符串的最佳长度或索引。

将 JavaScript 修剪为十个字符

有时,你可能想要修剪一个字符到固定的长度,比如10个字符,并且你并不关心它的原始长度如何。在 JS 中为了修剪到十个长度,你可以使用 slice() 方法去使用固定的 0-10 的索引,这个 slice() 方法提取了字符串的一部分并且返回了一个新的字符串。

这里有几个使用 JavaScript slice 去裁剪字符串到十个字符的代码示例。

// Using slice() to trim a string to 10 characters
let message = "JavaScript runs everywhere on everything!";
console.log(message.slice(0, 10)); 
// Output: "JavaScript"
// Using slice() to trim a string to 10 characters
let name = "Java";
console.log(name.slice(0, 10)); 
// Output: "Java"
// Using slice() to trim a string to 10 characters
let title = "Eloquent JavaScript";
console.log(title.slice(0, 10)); 
// Output: "Eloquent J"

如你所见,slice() 方法修剪字符串到十个字符,不管它的原始长度说多少。但是,这也意味着它可以从字符串中间切断语句,这可能会影响子串的可读性或意义。所以,你应该小心的使用这个方法,并且最好是必要的时候才使用。

JavaScript在字符后修剪字符串。

有时,你可能想要在特定的字节后去修剪字符串,比如在逗号、点、或者空格。为了在字符后修剪字符串,你可以使用 JavaScript indexOf()slice() 方法。

indexOf() 方法返回指定字符在字符串中第一个出现的索引。如果这个字符没找到,那就返回 -1,这个 slice() 方法,就喝我们之前见到的一样,从字符串中提取一个字符串并且返回新的字符串。

这里有一些使用 indexOf() 和 slice() 去在字符后面修剪字符串的示例。

// Using indexOf() and slice() to trim a string after a comma
let address = "123 Main Street, New York, NY 10001";
console.log(address.slice(0, address.indexOf(","))); 
// Output: "123 Main Street"
// Using indexOf() and slice() to trim a string after a dot
let email = "john.doe@example.com";
console.log(email.slice(0, email.indexOf("."))); 
// Output: "john"
// Using indexOf() and slice() to trim a string after a space
let greeting = "Hello, world!";
console.log(greeting.slice(0, greeting.indexOf(" "))); 
// Output: "Hello,"

正如你所看到的,indexOf() 和 slice() 方法会修剪指定字符后的字符串,删除其后面的所有内容。但是,这也意味着它可能会丢失字符串中的一些重要或相关信息。因此,您应该谨慎使用此方法,并且仅在需要时使用。 添加 JavaScript 注释是为了理解功能。

修剪字符处的字符串

有时,你可能想要修剪特定的字符串,比如破折号、冒号或斜线。这可能对给予特定的分隔符号分开一个字符串为两个或更多的部分有作用。为了修剪字符处的字符串,你可以使用 split()join() 方法。

split() 方法给予一个特定的字符分隔字符串为一个子串的数组。它接受一个参数:这个用作分割器的字符,join() 方法将一个有着子字符串的数组合成一个新字符串。它接受一个参数:这个用作分割(结合)器的字符

这里有几个使用 split()join() 去修剪字符串为字符的例子

// Using split() and join() to trim a string at a dash
let title = "JavaScript-Trim-String";
console.log(title.split("-").join(" ")); 
// Output: "JavaScript Trim String"

// Using split() and join() to trim a string at a colon
let time = "06:56:08";
console.log(time.split(":").join(".")); 
// Output: "06.56.08"

// Using split() and join() to trim a string at a slash
let url = "https://www.bing.com\search?q=javascript+trim+string";
console.log(url.split("\").join("/")); 
// Output: "https://www.bing.com/search?q=javascript+trim+string"

正如您所看到的,length 和 slice() 方法从末尾修剪字符串,删除指定数量的字符。但是,这也意味着您需要知道要删除的确切字符数,但情况可能并非总是如此。

修剪字符之前的字符串

有时,您可能希望在指定字符(例如逗号、点或空格)之前修剪字符串。这对于删除字符串中某个定界符或分隔符之前不需要的或不必要的部分非常有用。

要在 JavaScript 中修剪字符之前的字符串,可以同时使用 lastIndexOf() 和 slice() 方法。 lastIndexOf() 方法返回字符串中最后一次出现的指定字符的索引。如果没有找到该字符,则返回-1。

以下是使用 JavaScript 数组方法 lastIndexOf() 和 slice() 修剪字符之前的字符串的一些代码示例:

// Using lastIndexOf() and slice() to trim a string before a comma
let address = "123 Main Street, New York, NY 10001";
console.log(address.slice(address.lastIndexOf(",") + 1)); 
// Output: " NY 10001"

// Using lastIndexOf() and slice() to trim a string before a dot
let url = "https://www.bing.com/search?q=javascript+trim+string";
console.log(url.slice(url.lastIndexOf(".") + 1)); 
// Output: "com/search?q=javascript+trim+string"

// Using lastIndexOf() and slice() to trim a string before a space
let message = "Hello, JavaScript!";
console.log(message.slice(message.lastIndexOf(" ") + 1)); 
// Output: "JavaScript!"

正如你所看到的,lastIndexOf() 和 slice() 方法会修剪指定字符之前的字符串,删除其前面的所有内容。

修剪字符串添加省略号 (...)

有时,您可能想要截断字符串并在末尾添加省略号 (…),例如当您想要创建摘要、指示截断或增强美观时。省略号是由三个点 (...) 组成的标点符号,通常用于表示某些内容被省略或遗漏。

要修剪字符串并在末尾添加省略号,可以同时使用 slice() 和 JavaScript 字符串连接 concat() 方法。 concat() 方法连接两个或多个字符串并返回一个新字符串。它接受一个或多个参数。

以下是使用 slice() 和 concat() 修剪字符串并在末尾添加省略号的一些代码示例:

// Using slice() and concat() to trim a string and add an ellipsis at the end
let message = "JavaScript runs everywhere on everything!";
console.log(message.slice(0, 20).concat("...")); 
// Output: "JavaScript runs ever..."

console.log(message.slice(0, 30).concat("...")); 
// Output: "JavaScript runs everywhere on ..."

正如您所看到的,slice() 和 concat() 方法修剪字符串并在末尾添加省略号,创建一个新字符串。但是,这也意味着您需要指定要提取的子字符串的长度,但情况可能并非总是如此。

修剪字符串并在末尾添加省略号可能有一些应用,例如:

  • 创建摘要:修剪字符串并添加省略号可以帮助您创建较长文本(例如博客文章、新闻文章或书籍)的简短摘要。
  • 指示截断:修剪字符串并添加省略号可以帮助您指示字符串已被截断或切断,例如当您想要将字符串适合有限的显示区域或格式时。
  • 增强美观性:修剪字符串并添加省略号可以帮助您增强字符串的美观性或外观,例如当您想要创建吸引人的标题、口号或引言时。

总结

在这篇博文中,我向您展示了如何使用不同的方法和技术在 JavaScript 中修剪字符串。我已经解释了如何使用trim()方法从字符串中修剪空格,以及如何使用slice()和concat()方法修剪字符串并在末尾添加省略号。

我们还讨论了 JavaScript 中修剪字符串的一些含义和应用,例如提高可读性、减少内存使用、匹配模式、创建摘要、指示截断或增强美观。

根据您的目的和情况使用适当的方法。例如,使用trim()修剪字符串两边的空格,使用slice()和concat()修剪字符串并在末尾添加省略号,或者使用其他方法如trimStart()、trimEnd() 、indexOf()、lastIndexOf()、split() 或 join() 以其他方式修剪字符串。

修剪字符串时请小心,不要丢失或更改字符串的含义或信息。在修剪字符串时添加一些指示符或解释,尤其是在不明显的情况下。

我希望这篇博文能够帮助您学习如何在 JavaScript 中修剪字符串。交给你了,你将如何使用 JavaScript 修剪方法?

以上就是JavaScript修剪字符串的方法和技巧的详细内容,更多关于JavaScript修剪字符串的资料请关注脚本之家其它相关文章!

相关文章

  • JS实现动态给图片添加边框的方法

    JS实现动态给图片添加边框的方法

    这篇文章主要介绍了JS实现动态给图片添加边框的方法,涉及javascript操作图片border的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • JavaScript new对象的四个过程实例浅析

    JavaScript new对象的四个过程实例浅析

    这篇文章主要介绍了JavaScript new对象的四个过程,结合实例形式简单分析了javascript面向对象程序设计中new对象的四个过程相关原理与实现方法,需要的朋友可以参考下
    2018-07-07
  • Javascript中数组sort和reverse用法分析

    Javascript中数组sort和reverse用法分析

    这篇文章主要介绍了Javascript中数组sort和reverse用法,实例分析了sort和reverse使用时的注意事项与相关技巧,具有不错的参考借鉴价值,需要的朋友可以参考下
    2014-12-12
  • js编写简单的聊天室功能

    js编写简单的聊天室功能

    这篇文章主要为大家详细介绍了js编写简单的聊天室功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • JavaScript文档加载模式以及元素获取

    JavaScript文档加载模式以及元素获取

    这篇文章主要介绍了JavaScript文档加载模式以及元素获取,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 高性能JavaScript循环语句和条件语句

    高性能JavaScript循环语句和条件语句

    这篇文章主要为大家介绍了高性能JavaScript循环语句和条件语句,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • 详解Javascript中DOM的范围

    详解Javascript中DOM的范围

    “DOM2级遍历和范围”模块定义了“范围”接口。通过范围可以选择文档中的一个区域,而不必考虑节点的界限(选择在后台完成,对用户是不可见的)。下面这篇文章主要介绍了Javascript中DOM范围的相关资料,需要的朋友可以参考下。
    2017-02-02
  • 使用Ajax与服务器(JSON)通信实例

    使用Ajax与服务器(JSON)通信实例

    本篇文章主要介绍了使用Ajax与服务器(JSON)通信方法,Ajax提供了两类服务器通信手段:同步通信和异步通信。有需要的可以了解一下。
    2016-11-11
  • JavaScript的数据类型转换原则(干货)

    JavaScript的数据类型转换原则(干货)

    JavaScript是一门弱类型(或称动态类型)的语言,即变量的类型是不确定的。下面通过本文给大家分享javascript数据类型转换小结,包括显示转换的数据类型和隐式的数据类型转换,感兴趣的朋友跟随脚本一起看看吧
    2018-03-03
  • JavaScript 对Cookie 操作的封装小结

    JavaScript 对Cookie 操作的封装小结

    通过本篇,您能了解到: 匿名函数 闭包的产生 JavaScript实现private 以及 public 访问权限 document.cookie 的操作
    2009-12-12

最新评论