初めてJavaScriptをやってみよー日記 ~15日目~

javascriptを学習した時の記録としてブログを書いていきます。

内容

正規表現とは

正規表現とは、文字列の表し方の一つで、複数の文字列を一つの文字列で表すことができるものです。特殊な文字列を使って表します。

/abcde/, /^a/

正規表現の使い方

正規表現での表し方

  • 単純なパターン
  • 特殊な文字
単純なパターン

単純なパターンとは、通常の文字列と同じように、一つの文字列を表す正規表現のパターンです。

/abc/ // "abc" と同じ文字列を表す正規表現
特殊な文字

正規表現には、通常の文字では表すことができないものを表すために特殊な文字が用意されています。ここではそのうちのいくつかを紹介します。

  • \
  • ^a
  • a$
  • ab*
  • a{n}
  • [xyz]
  • [^xyz]
\

\は直後の文字が一文字で特殊な意味を持つ文字だった場合、その特殊な意味をなくし、その字そのものにします。

直後の文字が、nのような\の後ろに書くことで特殊な意味を持つ場合、その意味を持ちます。

また、特に意味を持たない文字の場合は、ないものとして扱われます。

"/\*/" // *
"/\n/" // 改行
"/\a/" // a
^a

^は行の先頭を表す文字です。

"/^a/" // 行先頭にある a
a$

$は行の一番最後を表す文字です。

"/a$/" // 行の一番最後にある a
ab*

*は直前の文字が0以上あるものを表す文字です。

"/ab*/" // abbb, abbbbbbb, a 
a{n}

a{n}aがn個あることを表します。

"/a{4}/" // aaaa
[xyz]

[]は括弧の中のどれか一文字を表します。[a-z]とかくと、aからzのことを表すことができます。

"/[xyz]/" // x, y, z
"/[a-z]/" // a, b, c ... y, z
[^xyz]

[^]は括弧の中のもの以外の一文字を表します。^が括弧の中にある場合、先頭という意味ではなく、否定の意味を持ちます。

"/[^xyz]/" // x, y, z 以外の何か一文字

正規表現での比較

様々な比較の方法がありますが、今回はその中のいくつかを書きます。

  • match()
  • test()

match()

match()はその文字列の中に、正規表現と一致するものがあるか先頭から調べ、一番最初に見つけたものを返します。

var str = "abcdefgh";
console.log(str.match(/[^a-c]/)); // d

test()

test()は文字列内に一致するものがあるか調べ、truefalseを返します。

var str = "abcdefgh";
console.log(/abc/.test(str)); // true
console.log(/ijk/.test(str)); // false