簡體   English   中英

正則表達式通過javascript從字符串中刪除重復的字符

[英]Regex remove repeated characters from a string by javascript

我找到了一種使用正則表達式從字符串中刪除重復字符的方法。

function RemoveDuplicates() {
    var str = "aaabbbccc";
    var filtered = str.replace(/[^\w\s]|(.)\1/gi, "");  
    alert(filtered);
}

輸出: abc這工作正常。

但是如果str = "aaabbbccccabbbbcccccc"那么輸出是abcabc 有沒有辦法只獲取唯一字符或刪除所有重復字符? 請讓我知道是否有任何方法。

像“這個,然后是一些東西和這個”這樣的前瞻:

 var str = "aaabbbccccabbbbcccccc"; console.log(str.replace(/(.)(?=.*\\1)/g, "")); // "abc"

請注意,這會保留每個字符的最后一次出現:

 var str = "aabbccxccbbaa"; console.log(str.replace(/(.)(?=.*\\1)/g, "")); // "xcba"

沒有正則表達式,保留順序:

 var str = "aabbccxccbbaa"; console.log(str.split("").filter(function(x, n, s) { return s.indexOf(x) == n }).join("")); // "abcx"

這是一個老問題,但在 ES6 中我們可以使用Sets 代碼如下所示:

 var test = 'aaabbbcccaabbbcccaaaaaaaasa'; var result = Array.from(new Set(test)).join(''); console.log(result);

暫無
暫無

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

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