2016-09-21 10 views
1

と負の負の後方参照私は、文字列があります。正規表現 - BR

var a = '<<<<<<<br>>>>>>>>' 

を私は交換したい:&lt;<>&gt;と、それは<br>タグであれば、私は<>を交換したくありません。だから、私はこれをやっている

a.replace(/<(?!br>)/g, '&lt;').replace(/>(?<!<br)/g, '&gt;') 

最初の置換は動作していますが、2番目のものはありません。

+0

、私はあなたがこれを処理するパーサを必要とするかもしれないと思います。 –

+0

https://jsfiddle.net/pwh3ht1t/を参照してください。これは、1つのregex replace呼び出しでこれを解決する方法を提案するかもしれません。 –

+0

'<+'を '<'と '> +'を '>'に置き換えることができます。これは、正規表現で起こっていることがわかる最も簡単な方法です。 – vlaz

答えて

0

JavaScriptは見た目のヒントをサポートしていないため、式が無効です。閉じ括弧のため

<(?!\/?\w) 

:ブレースを開くため

\B> 

\B非ワード境界を表します。

JS:一般的なケースでは

> a.replace(/<(?!\/?\w)/g, '&lt;').replace(/\B>/g, '&gt;') 
< "&lt;&lt;&lt;&lt;&lt;&lt;<br>&gt;&gt;&gt;&gt;&gt;&gt;&gt;"