JavaScript Regex删除特定的连续重复字符

JavaScript Regex Remove Specific Consecutive Duplicate Characters

本文关键字:连续 字符 Regex 删除 JavaScript      更新时间:2023-09-26

我正试图建立一个regex函数,将删除任何非alpha数字字符并删除所有重复字符,例如:aabcd*def%gGGhhhijkklmnoP'1223将成为这:abcddefgGhijklmnoPR3。我能够轻松地删除特殊字符,但不能为我的生活工作,如何删除重复字符?这是我当前删除特殊字符的代码:

var oldString = aabcd*def%gGGhhhijkklmnoP'122
var filtered = oldStringt.replace(/[^'w's]/gi, ""); 

如何扩展上述正则表达式以检查重复字符和由非字母数字字符分隔的重复字符。

正则表达式为/[^'w's]|(.)'1/gi

在这里测试:http://jsfiddle.net/Cte94/

它使用反向引用来搜索任何字符(.)后面跟着相同的字符'1

除非"检查重复字符"是指aaa => a

然后是/[^'w's]|(.)(?='1)/gi

在这里测试:http://jsfiddle.net/Cte94/1/

请注意,两个正则表达式都不区分大小写。A == a,所以Aa是重复的。如果你不需要它,把i/gi

中去掉

'1+是关键

"aabcdd".replace(/('w)'1+/g, function (str, match) {
    return match[0]
}); // abcd

非正则表达式版本:

var oldString = "aabcd*def%gGGhhhijkklmnoP'122";
var newString = "";
var len = oldString.length;
var c = oldString[0];
for ( var i = 1; i < len; ++i ) {
  if ( c != oldString[i] ) {
    newString += c;
  }
  c = oldString[i];
}

简短的输入=梵天输出:梵天裁判:http://jsfiddle.net/p7yu8etz/5/

var str = "Brahmananda";
var reg = /(.)(.*?)('1)/g;
while (reg.test(str))
str = str.replace(reg, "$1$2");
$("div").text(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div><div>