2

文字列内の数値を更新しようとしています

現在私は使用しています:

savedJobsDiv.innerHTML = savedJobsDiv.innerHTML.replace(/.*\(|\)/gi, parseInt('$1')+1);

一部の () 括弧内の eberythign を一致値 +1 に置き換えますが、うまくいきません。得られるのは NAN33NAN で、33 が正しい数値であるか、数学がうまくいくものです。

どこが間違っているのですか?

私の開始文字列は次のとおりです。

random string here (33)

そして、括弧内の数字に+1したい:

random string here (34)
4

2 に答える 2

3

$1パターンに一致するサブグループがないため、値はありません。$1括弧で示された最初のグループに一致します (括弧はありますが、それらは文字どおりの括弧に一致します - それらはパターンの一部ではありません。つまり、サブグループに一致します)。

このようなより計算的な置換については、一致をコールバックにフィードすることをお勧めします。

"random string here (33)".replace(/(\()([\d\.]+)(?=\))/g, function($0, $1, $2) {
    //$0 == whole match; $1 == first bracket; $2 == number
    return $1+(parseFloat($2)+1);
}); // == "random string here (34)"

を使用parseFloatすると、整数だけでなく浮動小数点数も使用できますが、両方で機能するため、推奨されます。

于 2013-08-05T11:36:02.473 に答える