2017-05-06 9 views
0

さまざまな文字列をスキャンし、特定の文字のすべてをhtmlスニペットに置き換えようとしています。例えばjQuery - 複数の文字列の複数の文字をhtmlスニペットに置き換えます。

- 私は、次をスキャンしたいと思います:

<div id="wrapper"> 
    <div>10,000 | 20,000 | 30,000</div> 
    <div>10,000 |: 20,000</div> 
    <div>10,000 :| 20,000</div> 
</div> 

をそして、それが出力として持っている:

<div id="wrapper"> 
    <div>10,000 <span class="single"></span> 20,000 <span class="single"></span> 30,000</div> 
    <div>10,000 <span class="single-wide"></span> 20,000</div> 
    <div>10,000 <span class="wide-single"></span> 20,000</div> 
</div> 

文字を見つけ、その後、他のテキストと置き換えるため、次の作品、同じ文字列内の文字の複数のインスタンスに対しては機能せず、htmlタグを挿入することはできません。任意の洞察力のための

$('#wrapper div').text(function (i, old) { 
    return old 
     .replace(' | ',' single ') 
     .replace(' |: ', ' single-wide ') 
     .replace(' :| ', ' wide-single '); 
}); 

https://jsfiddle.net/s60v8o5x/

感謝。

答えて

0

使用正規表現複数の文字列を置換し、代わりにテキスト

$('#wrapper div').html(function (i, old) { 
    return old 
    .replace(/ \| /g,' <span class="single"</span> ') 
    .replace(/ \|: /g, ' <span class="single-wide"></span> ') 
    .replace(/ :\| /g, ' <span class="wide-single"></span> '); 
}); 

https://jsfiddle.net/dscfnnf0/2/

+0

ありがとう、キリスト教 - それは近い - フロントエンドでレンダリングせずにHTML タグを挿入するにはどうすればよいですか? https://jsfiddle.net/s60v8o5x/2/ – d38

+0

テキストの代わりにhtmlを使用すると、コードにいくつかの変更が加えられます。https://jsfiddle.net/dscfnnf0/2/ –

+0

パーフェクト - ありがとう – d38

0

HTMLを使用するには、それはあなたFiddle

$('#wrapper div').text(function (i, old) { 
    return old 
    .replace(/ \| /g,' <span class="single"></span> ') 
    .replace(/ \|: /g, ' <span class="single-wide"></span> ') 
    .replace(/ :\| /g, ' <span class="wide-single"></span> '); 
}); 
のために働く場合は、この正規表現&フィドルをお試しください
+0

ありがとうアガム、html違いがあった。 – d38

+0

あなたは、受け入れられた回答のコメントでフロントエンドのhtmlを表示しないように頼んだと思った。残念ながら私は助けることができる:) –

関連する問題