2012-05-11 11 views
-2

大きな文字列の部分文字列を特定の規則に置き換えることができる関数が必要です。Javascriptどのように特定のルールを適用して部分文字列グローバル置換を適用する

例えば、私は10

function replace(str, increment){} 

により、文字列の増加pageXごとに数字がreplace("pageX : 100, pageY: 200,......pageX : 120...", 10)

を行いたいが、私はのようなstring.replace(/pageX :/g,someStr)replaceAllを行うことができることを知って"pageX : 110, pageY: 200,......pageX : 130..."

を取得しますが、ルールを適用することはできません。 どうすれば入手できますか?

+1

なぜ '200'(タイプミス?)増加していませんか?あなたはそれのためにあなた自身のロジックを書く必要があります、それを行うことができる組み込みはありません。つまり、数値を抽出し、数値を増やして戻します。 –

+0

いくつかのインスピレーションのために、[Javascript string replace with calculations](http://stackoverflow.com/questions/2843455/javascript-string-replace-with-calculations)をご覧ください。 –

+0

@Felix Kling '200'は' pageY'用です。少し違いがあります。 – ThemeZ

答えて

1

方法:

var string = "pageX : 100, pageY: 200,......pageX : 120..."; 
string = string.replace(/(\d+)/g, function(match, contents) { 
    return (+contents + 10); 
}); 
console.log(string); 

DEMO:http://jsfiddle.net/ytptN/

0

Regexp\d+パターンを使用すると、すべての数値が一致し、String.replace関数呼び出しで置換を生成することができます。一致した数を乗算して(または別の方法で)修正して戻します。 replace関数コールバックを使用する方法について

関連する問題