2016-04-26 8 views
0

で正規表現を使用して大規模なテキスト内の2つの文字間のすべての出現文字列を置き換え$リンゴは$であり、第二の果実は、$マンゴー$です第三果実はJavaScriptで$こんにちは私たちは、次のテキスト</p> <p>を持っている。これは、果実ですJavascriptを

$バナナでは、我々はの間のテキストを見つける必要があります$ .. $とこれは果物であるランダムに出現するたびに自分のテキストと

を交換するには、$の5つのリンゴ$であり、第二の果実は$$の2つのマンゴーであり、第3の果実があります$バナナは黄色$

このようないくつかのものです、主な目的は、$$間のすべての文字列を見つけることですと新しいテキストと置き換えます。

私は簡単なJavaスクリプトの正規表現や他のどのような方法でも素早く手助けできます。

+0

'\ $ [^] * \ $'がスタートです。あなたはそれを自分で構築しようとしましたか?正規表現の構文を知っていますか? – Aerovistae

+0

これまでに試したことはありますか? –

答えて

2

私が何をしたいことは、このだと思います。このような

var text = "This is fruit is $apple$ and second fruit is $the mangoes$ and the third fruit is $ price \\$ of banana$"; 

var replace = ['hello', 'these', 'are', 'some', 'random', 'strings']; 

var matches = text.match(/\$(?:[^\$\\]|\\.)*\$/g); 

matches.forEach(function(match) { 
    random = '$' + replace[Math.floor(Math.random() * replace.length)] + '$'; 
    text = text.replace(match, random) 
}); 

alert(text); 
+0

これは私のためにうまくいきましたが、2つの追加アイテムのリクエストにお手伝いしていただきありがとうございます1)スペースがあると、マンゴー$はこの場合一致しません。 2)エスケープ文字を使用する方法:もし$ \ insideを使ってこのドルを無視すると$ $ \ $のバナナ$ – Kiran

+0

私は答えを更新しましたが、エスケープするためには二重を使用する必要があります\\ ここにはjsfiddleそれはhttps://jsfiddle.net/uxv491rL/ – wavvves

+0

答えを更新していただきありがとうございます、これは私が探しているものです。 – Kiran

1

何か作業をする必要があります:

https://jsfiddle.net/mewcg3zo/

var text = "This is fruit is $apple$ and second fruit is $mango$ and the third fruit is $banana$"; 
var matches = text.match(/\$(.*?)\$/g); 
var newText = ['$five apples$', '$two mangoes$', '$bananas are yellow$']; 

$.each(matches, function(index, match) { 
    text = text.replace(match, newText[index]); 
}); 

alert(text); 
+0

これは私のためにうまくいきますが、エスケープ文字を使用する方法のリクエストを助けてくれてありがとうございます。このドルを無視するために\ $ insideを使用すると、$ price \ $のバナナ$ – Kiran

関連する問題