JavaScriptで最初のスラッシュより前の文字列を置換する方法
はじめに
次のような、スラッシュ(/)を含む文字列があるとします。
var queryStringValue = "welcome/name/john/age/32"
この文字列の「最初のスラッシュより前の部分」だけを別の文字列に置き換えたい場合は、replace()メソッドと正規表現を組み合わせることで簡単に実現できます。
使用する正規表現の意味
今回使う正規表現は /^[^/]+/ です。それぞれの記号は以下のような意味を持っています。
^… 文字列の先頭位置を表す[^/]+… 「スラッシュ以外の文字」が1文字以上続く部分にマッチする
つまり、このパターンは「文字列の先頭から、最初のスラッシュの手前まで」に一致し、replace()の第2引数に指定した文字列と入れ替わります。
サンプルコード
実際のコードは次のとおりです。
var regularExpression = /^[^\/]+/
var queryStringValue = "welcome/name/john/age/32"
var replacedValue = queryStringValue.replace(regularExpression, 'index');
console.log("Original value="+queryStringValue);
console.log("After replacing the value="+replacedValue);プログラムの実行方法
上記のプログラムはNode.jsで実行します。ターミナルやコマンドプロンプトで、次のコマンドを入力してください。
node fileName.js
ここでは、ファイル名を demo245.js として保存しているものとします。
実行結果
コンソールには次のように出力されます。
PS C:\Users\Amit\javascript-code> node demo245.js Original value=welcome/name/john/age/32 After replacing the value=index/name/john/age/32
出力を見ると、文字列の先頭にあった「welcome」だけが「index」に置き換わり、それ以降の「/name/john/age/32」の部分はそのまま残っていることがわかります。
まとめ
最初のスラッシュより前の文字列だけを置換したいときは、正規表現 /^[^/]+/ を使うことで、文字列全体ではなく必要な部分だけをピンポイントで書き換えられます。URLのパスやクエリ文字列の一部を差し替えたい場面などで役立つテクニックなので、ぜひ覚えておきましょう。
-
JavaScriptでランダムなパスワードジェネレーターを作成する方法
JavaScriptでパスワードジェネレーターを作成するには、Math.random()メソッドを活用するのが簡単で効果的です。Math.random()は0以上1未満の乱数を返すため、これを使って文字コレクションからランダムに文字を選び出し、任意の長さのパスワードを生成できます。 パスワード生成の仕組み 基本的な流れは以下の通りです。 使用する文字(大文字・小文字のアルファベットと数字)を1つの文字列として定義する Math.random()に文字数を掛け、Math.floor()で整数に変換してインデックスを求める 指定された長さになるまでループ処理で文字を連結していく サンプルコード
-
【Python】文字列からバックスラッシュを置換・分割する方法
Pythonでは、文字列に含まれるバックスラッシュ(\)を扱う場面がよくあります。たとえば、Windowsのファイルパスやエスケープシーケンスを含む文字列を処理する際などがその代表例です。 split()メソッドを使ったバックスラッシュでの分割 最もシンプルな方法は、文字列のsplit()メソッドにバックスラッシュを区切り文字として指定することです。これにより、期待通りの結果が得られます。 >>> var = "aaa\\bbb\\ccc and ddd\\eee" >>> var.split(\\) [aaa, bbb, ccc and