我正在尝试创建一个可以减少的脚本,例如,“你好。我今天过得很愉快!” to“helloihadagreatdaytoday”。到目前为止,我只设法将文本转换为小写:^)
我有一串禁止的字符。
var deletthis = ". !";
var a = deletthis.split("");
如您所见,它禁止点,空格和感叹号,并将该字符串转换为数组。然后我给用户一个提示,并通过for循环运行返回字符串(q),这应该删除被禁止的字符。
for (i=0; i<a.length; i++) {
q = q.replace(a[i], "");
}
但是,这只会在字符串中禁止该字符的一个实例。因此,如果我输入“那很好......非常好!!!”,它会返回“Thatis nice ..非常好!!”。
任何帮助表示赞赏:)!
您可以使用正则表达式。
deletthis.replace(/ /g,'')
这段代码的作用是找到字符串中的空格并删除它们,
此外,快速谷歌如何删除字符串中的空格会有所帮助
使用正则表达式
a = a.replace(/[\.!]/g, "");
如果你事先不知道这些字符,你可以逃避它们以防万一:
a = a.replace(new RegExp("[" + deletethis.split(" ").map(c => "\\" + c).join("") + "]", "g"), "");
使用正则表达式删除任何非字母表,然后LowerCase()
进行大小写转换,然后拆分并加入以删除任何空格
let str = "Hello. I had a great day today!"
let k = str.replace(/[^a-zA-Z ]/g, "").toLowerCase().split(" ").join("");
console.log(k)
在这种情况下使用正则表达式可能会更短,因为它是相同的输出,所以我们可以使用|
表示或在正则表达式中:
var str = "Hello. I had a great day today!";
str = str.replace(/\.| |!/g, "").toLocaleLowerCase();
console.log(str)