我正在寻找一个正则表达式,它可以删除字符串中所有重复的字符。我已经使用循环解决了这个问题。只是想知道是否有一个正则表达式可以做同样的事情。
这是我目前所拥有的:
function onlyUnique(str) {
var re = /(.)(?=.*\1)/g
return str.replace(re, '');
}
这个字符串:
"rc iauauc!gcusa_usdiscgaesracg"
应该这样结束:
" !_de"
最佳答案
您可以使用 Array#filter
与 Array#indexOf
和 Array#lastIndexOf
检查元素是否重复。
var str = "rc iauauc!gcusa_usdiscgaesracg";
// Split to get array
var arr = str.split('');
// Filter splitted array
str = arr.filter(function (e) {
// If index and lastIndex are equal, the element is not repeated
return arr.indexOf(e) === arr.lastIndexOf(e);
}).join(''); // Join to get string from array
console.log(str);
document.write(str);
关于javascript - 正则表达式删除所有重复的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34569206/