2

したがって、基本的に、テキストエリアのhtmlを含む特定のタグを(javascriptのみを使用して)残りの部分に触れることなく操作したいと思います。たとえば、次のようになります。

<textarea>    
    some stuff here
    random new line

    <i>this can be treated as
    per other text and manipulated</i>

    <b>
    BUT something 
    in bold 
    should be ignored / overlooked</b>

    and some
    other stuff,
    right here

</textarea>

\nこのテキストエリアのすべての新しい行を()で置き換えたいが、 (およびHTMLタグだけでなく、タグだけ<br/>)のテキストを無視したいとします。これについてはどうすればよいですか?<b><b>

ある種の正規表現が機能するかどうかを考えていましたが、ルールをまとめる方法がわかりませんでした...正規表現を介してhtmlを解析することは理想的ではありませんが、機能する場合は問題は解決します。また、ある種のjqueryがジャグリングしている.text()と思っていたので、いくつかのjqueryで.html()動作する可能性がありますが、実際にどこから始めればよいのかわからなくなっています...:not().filter()

どうもありがとう

4

1 に答える 1

2

これが正しいまたは最良のアプローチであると主張しているわけではありませんが、必要なことを行う正規表現を次に示します。

次の例では、文字列内で aが aの前に表示されない場合、 any\nをに置き換えます。これにより、 内の置換が防止されます。<br/></b><b><b></b>

text = text.replace( /\n(?!((?!<b>)[\s\S])*<\/b>)/g , '<br/>' );

$('textarea').val( function ( index, old ) {
    return old.replace( /\n(?!((?!<b>)[\s\S])*<\/b>)/g , '<br/>' );
});
于 2013-02-28T12:19:09.873 に答える