JS_文字列内の複数の数字の並びを_””_ダブルクォーテーションで囲んだものに置換


javascriptにおいて

変数内に格納された文字列のうちの

数字を表す文字[0-9]の1回以上の繰り返しにマッチして、


文字列内に複数のそのパターンがあれば


そのマッチした部分を

""の内部に囲んだ文字列に置換するようにするには、


replaceAllのメソッドの引数のひとつに

正規表現を使えばいいのでしょうか?


よろしければサンプルコードを示していただけないでしょうか?



はい、JavaScriptでは、

`replaceAll` メソッドの引数に正規表現を使用して、

その条件に一致する部分文字列を置換できます。


質問の要件に従い、

正規表現 `[0-9]+` を使用して

文字列内の数字部分を `""` で囲む例を示します。


以下にサンプルコードを示します:


```javascript


const input = "abc123def456ghi789";


const output

 = input.replaceAll(/[0-9]+/g,

(match) => `"${match}"`);


console.log(output);


```


### コードの説明

1. **`input`**: 元の文字列。


2. **`/[0-9]+/g`**: 正規表現。


   - `[0-9]`: 数字(0~9)に一致。

   

   - `+`: 1回以上の繰り返しに一致。

   

   - `g`: グローバルマッチフラグ。

文字列全体からすべての一致を見つけます。

   

3. **`replaceAll`**:


   - 第一引数に正規表現を指定します。

   

   - 第二引数に関数を渡すことで、

マッチした部分ごとに処理を指定できます。

   

4. **`"${match}"`**: 

マッチした文字列を `""` で囲んだ文字列に置換します。


### 実行結果


上記のコードを実行すると、以下の結果が得られます:


```

abc"123"def"456"ghi"789"

```


もし環境が `replaceAll` をサポートしていない場合は、

`replace` を使う方法もあります

(正規表現に `g` フラグを付けてグローバルマッチを行います)。



コメント