javascript/typescriptにて文字列から特定の値を抜き出し変数に格納する

投稿者: Anonymous
let title1 = "2017年 3月号 / No.98";
let title2 = "2017年 10月号 / No.105";

上記のような文字列を格納した変数があり、この中から年の値(2017)をyear、月の値(3 or 10)をmonth、No.の値(98 or 105)をnumberといった変数に格納する場合、どのような正規表現を利用し、取得すれば良いでしょうか?
ご教示のほど、よろしくお願いいたします。

解決

文字列.match(正規表現) でマッチした結果が配列で得られます。
数値は(d+)の様にマッチする部分を指定します。
/は、/のようにエスケープします。
(間のスペースが複数だったり単数だったりゆらぎがある場合にはその部分も正規表現とする必要があります。)
result[0]はマッチした全体、以降は( )で指定した部分マッチ)
result =の部分は[dummy, year, month, number] =にもできます。(ブラウザによっては未サポートであることに注意下さい)dummyが必要なのは最初がマッチの全体なため)
以下例:

_x000D_

_x000D_

let title1 = "2017年 3月号 / No.98";_x000D_
_x000D_
let result = title1.match(/(d+)年 (d+)月号 / No.(d+)/);_x000D_
let year = result[1];_x000D_
let month = result[2];_x000D_
let number = result[3];_x000D_
console.log("year:", year);_x000D_
console.log("month:", month);_x000D_
console.log("number:", number);

_x000D_

_x000D_

_x000D_

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *