如何在JS中多次删除字符串中的禁止字符?

问题描述 投票:0回答:4

我正在尝试创建一个可以减少的脚本,例如,“你好。我今天过得很愉快!” to“helloihadagreatdaytoday”。到目前为止,我只设法将文本转换为小写:^)

我有一串禁止的字符。

var deletthis = ". !";
var a = deletthis.split("");

如您所见,它禁止点,空格和感叹号,并将该字符串转换为数组。然后我给用户一个提示,并通过for循环运行返回字符串(q),这应该删除被禁止的字符。

for (i=0; i<a.length; i++) {
    q = q.replace(a[i], "");
}

但是,这只会在字符串中禁止该字符的一个实例。因此,如果我输入“那很好......非常好!!!”,它会返回“Thatis nice ..非常好!!”。

任何帮助表示赞赏:)!

javascript arrays string
4个回答
0
投票

您可以使用正则表达式。

deletthis.replace(/ /g,'')

这段代码的作用是找到字符串中的空格并删除它们,

此外,快速谷歌如何删除字符串中的空格会有所帮助


0
投票

使用正则表达式

a = a.replace(/[\.!]/g, "");

如果你事先不知道这些字符,你可以逃避它们以防万一:

a = a.replace(new RegExp("[" + deletethis.split(" ").map(c => "\\" + c).join("") + "]", "g"), "");

0
投票

使用正则表达式删除任何非字母表,然后LowerCase()进行大小写转换,然后拆分并加入以删除任何空格

let str = "Hello. I had a great day today!"
let k = str.replace(/[^a-zA-Z ]/g, "").toLowerCase().split(" ").join("");
console.log(k)

0
投票

在这种情况下使用正则表达式可能会更短,因为它是相同的输出,所以我们可以使用|表示或在正则表达式中:

var str = "Hello. I had a great day today!";

str = str.replace(/\.| |!/g, "").toLocaleLowerCase();

console.log(str)
© www.soinside.com 2019 - 2024. All rights reserved.