簡體   English   中英

從字符串中刪除定義的非法字符

[英]Remove defined illegal characters from string

如果它們背對背,則字符匹配。 如果定義的非法字符是長字符串的一部分,則不會返回正確的已清理文本。 我想要找到並用空格替換的非法字符是'-_ + = [] {} \\ |'

我已經閱讀了各種正則表達式博客,Mozilla Developer Network網站,以及stackoverflow中的一些答案。 我使用了\\ for +,[和|。 如果有更簡單的方法,請分享。

function dirtyString(str) {
    cleanString = str.replace(/-_\+=\[]{}\|/g, "");
    return cleanString;
}

對於我運行的大多數示例代碼,我都沒有得到任何返回。 我在Codepen和jsfiddle上運行。

嘗試將您的角色放入正則表達式字符類:

 function dirtyString(str) { cleanString = str.replace(/[\\-_+=\\[\\]{}\\\\|]/g, ""); return cleanString; } var str = "HELLO-_+=[]{}|WORLD"; console.log(str); console.log(dirtyString(str)); 

注意:即使在正則表達式字符類中,也應該轉義方括號和反斜杠(盡管在每種正則表達式中並不總是如此)。

將您的角色放入角色類 (括號內)

字符類將對其中的每個字符進行數學運算。 例如,正則表達式/[abc]/g將匹配所有a,b和c(字符類為[abc] 。此外,字符類[a-zA-Z0-9] (您可能會看到)很多)匹配所有字母數字字符

在括號( [] )之前使用/ 在這里查看更多。

 var string = "s[s ass'-sas_+as[aasd]{ss}\\asddfa|a]fasdf"; string = string.replace(/[ '-_+=\\[\\]{}\\|]/g, ''); console.log(string); 

你需要通過一個字符類( [] )來選擇它們;

 function dirtyString(str) { cleanString = str.replace(/[\\-_+=\\[\\]{}\\\\|]/g, ""); return cleanString; } var string = "This -str_+in=g[ ]is {d}i|rty."; console.log(dirtyString(string)); 

暫無
暫無

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

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