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

时间:2018-08-30 17:29:14

标签: javascript arrays string

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

我有一串禁止的字符。

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

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

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

但是,这仅禁止在字符串中使用该字符的一个实例。因此,如果我输入“那很好...很好!!!”,它将返回为“那很好..很好!!”。

感谢您的帮助:)!

4 个答案:

答案 0 :(得分:0)

您可以为此使用正则表达式。

deletthis.replace(/ /g,'')

此代码的作用是在字符串中找到空格并将其删除,

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

答案 1 :(得分:0)

使用正则表达式

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

如果您事先不知道字符,可以以防万一:

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

答案 2 :(得分: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)

答案 3 :(得分:0)

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

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

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

console.log(str)