JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【JavaScript】文字列の特定のインデックスの文字を置き換える方法

JavaScriptでは文字列は不変(イミュータブル)なため、str[0] = 'x' のように直接インデックスを指定して文字を書き換えることはできません。そこで、既存の文字列をもとに新しい文字列を組み立てる方法が一般的に使われます。

基本的な実装例

以下の例では、文字列「cric」のインデックス3(4番目の文字)を「x」に置き換えています。

<html>
   <head>
      <title>JavaScript</title>
   </head>

   <body>
      <script>
         var str = "cric";
         document.write("元の文字列: " + str);
         var index = 3;
         str = str.substr(0, index) + 'x' + str.substr(index + 1);
         document.write("<br>置き換え後の文字列: " + str);
      </script>
  </body>
</html>

実行すると、ブラウザには次のように表示されます。

元の文字列: cric
置き換え後の文字列: crix

コードの解説

  • str.substr(0, index) … 先頭から、置き換えたい位置の直前までの部分文字列(「cri」)を取り出します。
  • 'x' … 新しい文字を挿入します。
  • str.substr(index + 1) … 置き換え対象の文字の次の位置から末尾までの部分文字列を取り出します。

これら3つを連結することで、指定した位置の文字だけが変更された新しい文字列「crix」が生成されます。元の文字列自体は変更されず、新しい文字列が作られる点に注意してください。

slice() を使ったモダンな方法

substr() は現在では非推奨(deprecated)とされているため、新しくコードを書く場合は slice() を使用するのがおすすめです。

let str = 'cric';
const index = 3;
str = str.slice(0, index) + 'x' + str.slice(index + 1);
console.log(str); // crix

slice(0, index) は開始位置から終了位置(含まない)までを切り出すため、substr() とほぼ同じ感覚で使えます。負のインデックスを末尾から数えられるなど、より柔軟な操作が可能です。どちらの方法でも結果は同じですが、将来的な互換性を考慮すると slice() の採用が望ましいでしょう。

  1. MySQLのREPLACE()関数でテーブル内の文字を置き換える方法

    MySQLでは、REPLACE()関数を使うことで、文字列の中から特定の1文字だけを簡単に置き換えることができます。この記事では、実際にテーブルを作成し、UPDATE文とREPLACE()関数を組み合わせて文字を置き換える手順を、サンプルコード付きでわかりやすく解説します。 1. サンプルテーブルを作成する まず、置き換え対象となるテーブルを作成します。 mysql> create table DemoTable -> ( -> Name varchar(20) -> ); Query OK, 0 rows affected (0.69 sec

  2. MySQLで列内の特定の文字を置き換える方法|REPLACE()関数とUPDATE文の使い方

    MySQLである列に含まれる特定の文字を別の文字に置き換えたい場合、REPLACE() 関数と UPDATE 文を組み合わせることで簡単に実現できます。この記事では、実際のサンプルコードを交えながら、具体的な手順をわかりやすく解説します。1. テーブルを作成するまずは動作確認用のサンプルテーブルを作成しましょう。ここでは「Code」という varchar 型のカラムを持つテーブルを定義します。mysql> create table DemoTable1899 ( Code varchar(20) ); Query OK, 0 rows affected (0.00