LoginSignup
1
2

More than 3 years have passed since last update.

Javascript基本集(6)~正規表現~

Last updated at Posted at 2020-04-10

自分の学習用です:santa:

正規表現とは

文字列の集合を一つの文字列で表現する方法で、
文字列に特定の文字が含まれているかを確認することや、特定の文字を取り除くなどの操作を行うための技術

代表的な特徴
・文字列の一部分を置換する
・文字列が制約を満たしているか調べる
・文字列の一部分を抽出する

「RegExp」オブジェクト

正規表現の英名【Regular Expression】が由来となる。
JavaScriptで正規表現を扱えるようにするためには、まず「RegExp」オブジェクトを作成する必要がある。
RegExpオブジェクトを利用することで、正規表現による検索や置換など文字列操作を自在に扱えるようになる。

構文

var reg = new RegExp( パターン, フラグ );//newでRegExpオブジェクトを生成して変数に代入

引数の「パターン」には一般的な正規表現を指定し、「オプション(g,i,mなど)」を指定する。

パターン
FireShot Capture 224 - 【JavaScript】正規表現で文字列を検索する – 株式会社ライトコード - rightcode.co.jp.png
オプション
スクリーンショット 2020-04-10 10.23.25.png

正規表現の文字列指定には注意が必要であり、正規表現で一般的に使う「\d」「\w」などの「\(バックスラッシュ)」はエスケープ処理と判断されるため、対応策として「\\d」や「\\w」のように2重で記述する。

new RegExp('\\d\\d'); 

メソッド一覧

①RegExpオブジェクトから呼び出すメソッド

execメソッド
正規表現に合致する文字列を検索

let string = 'abcdefgab';
let regexp = RegExp('[a-b]')
let result = regexp.exec(string);
console.log(result); // => [ 'a', index: 0, input: 'abcdefgab', groups: undefined ]

testメソッド
正規表現に合致する文字列が含まれているか判定する

let string = 'abcdefgab';
let regexp = RegExp('[a-b]', 'g')
let result = regexp.test(string);
console.log(result); // => true

②Stringオブジェクトから呼び出すメソッド 

match メソッド
正規表現に合致する文字列を検索できます。g オプションが有効の場合、合致する文字列の配列を返す

let string = "ABCDEFGABCD"
let result = string.match(/[a-b]/gi);
console.log(result); // => [ 'A', 'B', 'A', 'B' ]

searchメソッド
正規表現に合致する文字列が最初にでてきた位置を取得する

let string = "cdseabcde"
let result = string.search(/[a-b]/);
console.log(result); => 4

replaceメソッド
正規表現に合致する文字列を、別の文字列に置き換える

let string = "123-4567";
let result = string.replace(/\d{3}-?d{4}/, '***-****');
console.log(result);

splitメソッド
正規表現に合致する文字列を区切り文字として、文字列を分割し。分割結果を配列として返す。

let regexp = RegExp('[-\/\.]'); // '-', '/', '.' にマッチ

let string1 = '2019-04-10'
let result1 = string1.split(regexp);
console.log(result1) // => [ '2019', '04', '10' ]

let string2 = '2019/04/10'
let result2 = string2.split(regexp);
console.log(result2) // => [ '2019', '04', '10' ]

let string3 = '2019.04.10'
let result3 = string3.split(regexp);
console.log(result3) // => [ '2019', '04', '10' ]

参考サイト

正規表現リファレンス
MDN

伊藤淳一さんのQiita
初心者歓迎!目と手で覚える正規表現入門

正規表現一覧(チートシート)サイト
murashun.jp

javascript向け正規表現学習サイト
Scriptular

視覚的・正規表現出力サイト
Regexper

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2