RegExp
RegExpオブジェクト
正規表現を扱うためのオブジェクトです。
正規表現って何?
パターンマッチ
置換
配列に分割
正規表現のパターン

正規表現って何?

文字列を検索や置換するときの条件設定です。 言語によって正規表現のコードが違います。 はじめて正規表現を使ったのはPHPでした。正直あまり好きではありません。
Pythonの正規表現はすでに公開しています。
呪文のような正規表現をやってみましょう。

Pythonではreg,JavaScriptではRegExpとなっていますが、英語表現では Regular Expressionです。それを省略している?最初にRegExp のインスタンスを作成します。

        //お堅いやり方
        var reg = new RegExp('abc');
        //または簡略化
        var reg =/abc/;                
    
インスタンスにはオプションをつけることができます。
例:
var reg =/abc/g;
var reg = new RegExp('abc',g);
オプション 説明
g 正規表現で最初にパターンマッチしたところで処理を終了。
i 大文字小文字を区別しない。
m 複数行に対応する。
このインスタンスはStringオブジェクトのメソッドで使われます。

    var reg =/abc/;                
    var str="1234abc567";
    var result = str.search(reg);
    console.log(result);//4     
CStringオブジェクトの正規表現に関するメソッドを以下に記載します。
メソッド 説明
match(reg) 正規表現のパターンregを使って、パターンマッチした文字列を返す。

    var reg =/ABC/; 
    var str="1234abc567\nABC890";
    var result = str.match(reg);
    console.log(result); 
    
resultの結果は、

文字列のインデックス11でマッチしています。
var reg =/ABC/i;
大文字小文字を区別しないi オプションを 付けると文字列のインデックス4でマッチします。しかし、インデックス11のもABCがありますが、 インデックス4でマッチすると終了になってしまいます。全体のマッチを取得するには,
matchAllを使います。

matchAll(reg) 正規表現のパターンregを使って、パターンマッチした文字列すべてを返す。

    var reg =/ABC/gi; 
    var str="1234abc567\nABC890";
    const array = [...str.matchAll(reg)];
    array.forEach((val) => {
        console.log(val[0], "is index =", val.index); 
    });

オプションにgをつけないとエラーになります。結果は、

    abc is index = 4
    ABC is index = 11

となります。ところで、
[...str.matchAll(reg)]; ってなんだ?

    var a = "abc";
    console.log(...a);//a b c
    console.log([...a]);//['a', 'b', 'c']
    
(...)はスプレッド構文 です。変数を展開して配列にします。複数にマッチした配列を forEachで表示してます。
replace(reg, str) パターンマッチした文字列を別の文字列で置き換える。

    var s = "123abc456def";
    var reg = /abc/;
    var t = s.replace(reg, "xyz");
    console.log(t);//123xyz456def
    
split(reg) パターンマッチした文字列で文字列を分割して配列で返す。

    var s = "123,abc,456,def";
    var reg = /,/;
    var t = s.split(reg);
    console.log(t);//) ['123', 'abc', '456', 'def']