正则表达式削减特定字符

时间:2017-09-24 11:26:52

标签: javascript jquery regex

我有这个HTML标记<a href="abc> google </a>,如何使用正则表达式将&#34; 放在 c 之后

HTML:/\=\s*["“'”](.*?)[^“"'”]\s*\>/g

正则表达式:function test90(element, input, inpArray, secIndex, inpActive, counter, Ipp) { Ipp = $("#" + element.id).data(inpActive); if (counter == 0){ counter++; $(element).data(inpActive, "primary"); inpArray[0]=("result1"); }else if (Ipp=="no") { counter++; $(element).data(inpActive, "yes"); inpArray[secIndex]="result2"; }else if (Ipp=="yes") { counter--; $(element).data(inpActive, "no"); inpArray[secIndex]=""; }else if (Ipp=="primary" && counter!==1) { counter--; $(element).data(inpActive, "no"); inpArray[0]="result3"; }else if (Ipp=="primary" && counter==1) { counter--; $(element).data(inpActive, "no"); inpArray[secIndex]=""; inpArray[0]="result4"; } $(input).val(inpArray[0]+inpArray[1]+inpArray[2]); $("#z1").html("counter = "+counter); $("#z2").html("Ipp = "+Ipp); }; var inpreco = ["", "", ""]; var inprocess = ["", "", ""]; var cpcounter1 = 0; var cpcounter2 = 0; $(".opcaopreco1").click(function () { cpcounter1=test90(this, "#preco", inpreco, "cpindex1", "cpactive1", cpcounter1, "Ipp1"); }); $(".opcaopreco2").click(function () { cpcounter2=test90(this, "#process", inprocess, "cpindex2", "cpactive2", cpcounter2, "Ipp2"); });

替换:=&#34; $ 1&#34;&gt;

https://regex101.com/r/1FQods/1

https://jsfiddle.net/liev04/6n038nvm/

regex

2 个答案:

答案 0 :(得分:2)

怎么样

{{1}}

答案 1 :(得分:1)

我建议如下:

str.replace(/=\s*["']([^"']*?)\s*?(?=>)/g,'="\1"');

这也适用于第二个"已存在的情况。它还允许=和字符串开头之间的空白。

点击此处查看演示:https://regex101.com/r/xo52ka/1

另一个问题可能是:

<a href="abc def > google </a>

我的解决方案会将其变为

<a href="abc def"> google </a>

但是,当然,这个解决方案有其局限性,到目前为止还没有水密。它只适用于每个标记的 last 属性(因为正则表达式中的前瞻(?=>))。