如何在JavaScript中从一个字符串中删除一个字符-replace()方法

73 阅读4分钟

在这篇快速文章中,我们将看到如何在JavaScript中从一个字符串中删除一个字符。我将向你展示几种不同的方法来做到这一点。

与HTML和CSS一样,JavaScript是网络的核心技术之一。大多数网站都使用它,而且所有现代的网络浏览器都支持它,不需要插件。它有一个巨大的社区,而且这个生态系统正在迅速发展。在这个系列中,我们将讨论不同的技巧和窍门,这将有助于你在日常的JavaScript开发中。

在JavaScript中,字符串有很多不同的属性和方法,我们可以用它们来转换字符串或从中收集有用的信息。事实上,通常有许多不同的方法可以对一个字符串做同样的事情。今天,我们将讨论几个不同的方法来从一个字符串中删除一个特定的字符。

replace 方法

在JavaScript中,replace 方法是最经常使用的从字符串中删除一个字符的方法之一。当然,这个方法的最初目的是用另一个字符串替换一个字符串,但我们也可以用它来从一个字符串中删除一个字符,即用一个空字符串替换它。

让我们通过下面的例子来了解它具体是如何工作的。

var strWebsiteName = "\ncode.tutsplus.com;
var strNewWebsiteName = strWebsiteName.replace("\n", "");
console.log(strNewWebsiteName);
//output: "code.tutsplus.com"

在上面的例子中,strWebsiteName 字符串变量包含了\n ,我们想把它删除。

因此,我们使用了replace 方法来实现它。replace 方法需要两个参数,第一个参数是你想在源字符串中替换的字符串,第二个参数是一个将被替换为匹配的字符串的字符串。在我们的例子中,我们想删除匹配的字符串,所以我们在第二个参数中提供了一个空字符串。因此,总体效果是,匹配的字符串将从源字符串中删除,而strNewWebsiteName 变量将包含结果字符串。

值得注意的是,replace 方法只替换源字符串中第一次出现的字符串。因此,如果你想从源字符串中删除所有出现的特定字符,你需要在replace 方法中使用一个正则表达式。这就是我们将在下一节中讨论的内容。

使用正则表达式的replace 方法

在本节中,我们将讨论如何使用正则表达式,用replace 方法从一个字符串中删除一个特定字符的每个实例。

让我们通过下面的例子来了解它是如何工作的。

var strWebsiteName = "\ncode.tutsplus.com\n\n\n\n";
var strNewWebsiteName = strWebsiteName.replace(/(\n)/gm,"");

console.log(strNewWebsiteName);
//output: "code.tutsplus.com"

在上面的例子中,我们在replace 方法的第一个参数中使用了一个正则表达式。它将从源字符串中删除所有出现的\n 字符。

事实上,当你在replace 方法中使用正则表达式时,你可以使用一个回调函数来处理替换,如下例所示。

function removeCharCallback(match, replaceString, offset, string) {
    return "";
}

var strWebsiteName = "\ncode.tutsplus.com\n\n\n\n";
var strNewWebsiteName = strWebsiteName.replace(/(\n)/gm, removeCharCallback);

console.log(strNewWebsiteName);
//output: "code.tutsplus.com"

我们没有直接用空字符串替换\n ,而是在replace 方法的第二个参数中使用了一个回调函数。回调函数的返回值应该是你想用匹配的字符串来替换的值。这对更复杂的替换有帮助。

这就是你如何使用replace 方法和正则表达式来删除源字符串中出现的所有特定字符。

split 方法

在最后一节中,我们将看到如何使用split 方法从JavaScript的字符串中删除一个字符。事实上,这是一个结合了splitjoin 方法的技巧。

让我们来看看下面的例子。

var strWebsiteName = "\ncode.tutsplus.com\n\n\n\n";
var strNewWebsiteName = strWebsiteName.split("\n").join(''); 
console.log(strNewWebsiteName);
//output: "code.tutsplus.com"

首先,我们用split 方法通过\n 字符来分割字符串,它将返回一个字符串数组。之后,我们用join 方法将所有的碎片与一个空字符串连接起来,因此,最终的结果是,它从源字符串中删除了\n 字符。所以,这就是如何使用split 方法从字符串中删除字符。

总结

今天,我们讨论了各种方法,你可以用这些方法来删除字符串中的一个字符。