【问题标题】:Javascript regex and replacing consecutive character setsJavascript 正则表达式和替换连续字符集
【发布时间】:2013-08-13 11:40:37
【问题描述】:

我在替换字符串中不必要的字符集时遇到问题。以下正则表达式替换字符集“&=&”的第一次出现,但不处理剩余部分。如何用正则表达式替换字符集的第一次和任何连续出现?

var test = "var1=data1&var2=data2&=&=&=&=&var3=data3&=&=&var4=data4&var5=&var6=data6";
var result = "";
result = test.replace(/(\&\=\&)+/g, '&');

// Result returns "var1=data1&var2=data2&=&=&var3=data3&=&var4=data4&var5=&var6=data6"

【问题讨论】:

    标签: javascript regex replace


    【解决方案1】:

    您可以改用积极的前瞻性。基本上,寻找&=,但只有那些后面跟着另一个&

    var a = "var1=data1&var2=data2&=&=&=&=&var3=data3&=&=&var4=data4&var5=&var6=data6";
    var b = a.replace(/\&=(?=\&)/g,'');
    // b = var1=data1&var2=data2&var3=data3&var4=data4&var5=&var6=data6
    

    (我认为这就是你所追求的)

    【讨论】:

      【解决方案2】:

      你需要的是([&=]+&)+,而不是(&=&)+

      【讨论】:

      • 好东西,谢谢。虽然这个正则表达式不考虑没有值的变量(例如,var5=&var6=data6 变为 var5&var6=data6,等号在 var5 之后需要保持不变)。
      猜你喜欢
      • 2017-11-03
      • 1970-01-01
      • 2015-09-28
      • 2013-01-21
      • 2014-04-29
      • 1970-01-01
      • 1970-01-01
      • 2011-02-03
      • 1970-01-01
      相关资源
      最近更新 更多