JavaScriptの正規表現(RegExp)で角括弧内の複数の値を括弧なしで取得する方法
JavaScriptの正規表現で角括弧内の値を取得する方法
JavaScriptの正規表現(RegExp)を使えば、文字列中の角括弧「[ ]」で囲まれた値を、括弧を除いた状態でそのまま取り出すことができます。マッチ結果は配列として返されるため、インデックス0、1…Nを指定して各値にアクセスするのがポイントです。
ここでは、後読みアサーション(lookbehind)(?<=\[)と先読みアサーション(lookahead)(?=\])を組み合わせたパターンを使用します。これにより、「開き括弧の直後から閉じ括弧の直前まで」の部分だけがマッチ対象になります。
コード例
var regularExpression = /(?<=\[).*?(?=\])/g;
var getTheValueWithIndex = "[John Smith][David Miller]".match(regularExpression);
console.log("1つ目の値(括弧なし)=" + getTheValueWithIndex[0]);
console.log("2つ目の値(括弧なし)=" + getTheValueWithIndex[1]);
上記のプログラムを実行するには、Node.js環境で次のコマンドを入力します。
node fileName.js
ここでは、ファイル名をdemo132.jsとして説明します。
実行結果
プログラムを実行すると、以下のような出力が得られます。
PS C:\Users\Amit\JavaScript-code> node demo132.js 1つ目の値(括弧なし)=John Smith 2つ目の値(括弧なし)=David Miller
正規表現パターンの解説
使用したパターンの各要素は、次のような役割を持っています。
(?<=\[):後読みアサーション。直前に開き括弧「[」があることを確認します(マッチ結果には含まれません)。.*?:任意の文字列を最短一致で取得します。(?=\]):先読みアサーション。直後に閉じ括弧「]」があることを確認します(マッチ結果には含まれません)。/g:グローバルフラグ。文字列全体から該当するすべての箇所を検索します。
match()メソッドはマッチした文字列の配列を返すため、getTheValueWithIndex[0]やgetTheValueWithIndex[1]のようにインデックスを指定すれば、括弧を除いた値をそれぞれ取得できます。この手法は、タグや区切り文字で囲まれたデータを解析したい場合にも応用できる、非常に便利なテクニックです。
-
JavaScriptでusemap属性の値を取得する方法をわかりやすく解説
JavaScriptで画像のusemap属性の値を取得したい場合は、useMapプロパティを使用します。このプロパティを使うことで、HTML要素に設定されたイメージマップの参照先を簡単に読み取ることができます。usemap属性とは?usemap属性は、クライアントサイドイメージマップを有効にするために<img>タグに指定される属性です。イメージマップ自体は、特殊な<map>タグと<area>タグによって定義されます。マップとして利用する画像は、通常どおり<img>要素を使ってページに挿入します。ただし、通常の画像とは異なり、usemapという追加
-
JavaScriptでリンクのtype属性の値を取得する方法
JavaScriptでリンク(アンカー要素)のtype属性の値を取得するには、typeプロパティを使用します。type属性は、リンク先のドキュメントがHTML(text/html)なのか、CSS(text/css)なのかといった、リソースの種類(MIMEタイプ)を示すために使われる属性です。この属性の値は、JavaScriptから簡単に読み取ることができます。サンプルコード以下のコードを実行すると、リンクのtype属性の値を取得して画面に表示できます。<!DOCTYPE html> <html> <body> &nbs