10

JS .replace を使用して整数を文字列に置き換える正規表現に頭を悩ませようとしています。

たとえば、文字列は次のようになります。

var string = 'image[testing][hello][0][welcome]';

「0」を別の値に置き換えたい。私はもともとこれを使用していました:

string.replace( /\[\d\]/g, '[newvalue]');

しかし、2 桁以上 (12、200、3204 など) を置き換え始めると、正常に動作しなくなります。私もそれを望むように機能させる方法がわかりません。

前もって感謝します。大変感謝しています。

4

2 に答える 2

18

複数の数字を指定する必要があります:

string.replace( /\[\d+\]/g, '[newvalue]');

JS フィドルのデモ

(デモでは jQuery を使用してノードを反復処理しますが、これは単なる便宜上のものであり、正規表現とは何の関係もありません。その機能を示すだけです。)

あなたのオリジナルがうまくいかなかった理由は、演算子/文字が前の(この場合は数字)文字を1回以上指定しているの\dに対し、1桁のみに一致するためだと思います。+

参照:

于 2012-07-30T22:37:18.860 に答える
3

以下を使用します。

string.replace( /\[\d+\]/g, '[newvalue]');

これは、括弧内のすべての数字と一致する必要があります。

于 2012-07-30T22:37:03.627 に答える