簡體   English   中英

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

[英]How do I delete banned characters from a string more than once in JS?

我正在嘗試創建一個減少腳本的腳本,例如,“你好。我今天過得很愉快!” 改為“ helloihadagreatdaytoday”。 到目前為止,我僅設法將文本轉換為小寫:^)

我有一串禁止的字符。

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

如您所見,它禁止點,空格和感嘆號,並將該字符串轉換為數組。 然后,我給用戶一個提示,並通過for循環運行返回字符串(q),該循環刪除被禁止的字符。

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

但是,這僅禁止字符串中該字符的一個實例。 因此,如果我鍵入“那很好...很好!!!”,它將返回為“那很好...非常好!!”。

任何幫助表示贊賞:)!

您可以為此使用正則表達式。

deletthis.replace(/ /g,'')

該代碼的作用是找到字符串中的空格並將其刪除,

此外,如何刪除字符串中的空格的快速Google會有所幫助

使用正則表達式

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

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

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

使用正則表達式刪除所有不是字母的內容,然后使用LowerCase()進行大小寫轉換,然后拆分並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) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM