この記事では、JavaScriptの正規表現を使って数値や文字列をチェックする方法について見ていきたいと思います。
正規表現を使って数値をチェックする方法
まずは数値をチェックする方法について見ていきましょう。
連続する数値をチェックする例
let value = "今日は2021年03月12日です。";
let found = value.match(/\d{4}|\d{2}/g);
console.log(found);
この例は、match()を使って4桁の半角数値もしくは2桁の半角数値を検索するという内容ですね。
ここで使用している正規表現ですが、
\d | すべての半角数字 |
{回数} | 直前のパターンの繰り返し |
A|B | AかBかのいずれか |
…/g | マッチする全ての要素を返す |
となります。
なので、文字列の数値の部分だけが返されるはずです。
では見てみると、
こうですね。
ちゃんと数値だけが取り出されていますね。
では次に日付をチェックする方法について見ていきましょう。
日付をチェックする方法
let value1 = "2021/03/13";
let value2 = "2021-03-13";
let pattern = /\d{4}\/\d{2}\/\d{2}/;
let found1 = pattern.test(value1);
let found2 = pattern.test(value2);
console.log(found1);
console.log(found2);
この例では、日付が指定された書式になっているかどうかをチェックするという内容になっています。
ここで正規表現\d{4}\/\d{2}\/\d{2}を指定していますが、
ここで用いている正規表現の意味は次の通りです。
\d | すべての半角数字 |
{回数} | 直前のパターンの繰り返し |
\特殊文字 | 特殊文字を普通の文字列として扱う |
なので、正規表現\d{4}\/\d{2}\/\d{2}は、文字列が4桁の数字/2桁の数字/2桁の数字という表現になっているかどうかという意味ですね。
では見てみると、
こうですね。
「2021/03/13」は指定された書き方になっているので「true」が、
「2021-03-13」は指定された書き方になっていないので「false」が返されていますね。
では次に文字列をチェックする方法について見ていきましょう。
正規表現を使って文字列をチェックする方法
では、正規表現を使って文字列をチェックしてみましょう。
let file1 = "picture.png";
let file2 = "text.txt";
let pattern = /\.txt$/;
let found1 = pattern.test(file1);
let found2 = pattern.test(file2);
console.log(found1);
console.log(found2);
この例では、
test()を用いて検索条件を \.txt$としています。
この正規表現の意味ですが
\特殊文字 | 特殊文字を普通の文字列として扱う |
文字$ | 直前の文字が末尾にある場合にマッチする |
という意味なので、末尾の文字列が「.txt」の場合にtrueが返されるはずです。
では見てみると
こうですね。
1つ目の「picture.png」の末尾は「.txt」ではないのでfalseが、
2つ目の「text.txt」の末尾は「.txt」なのでtrueが返されています。
では次に桁数を指定して数字をチェックする方法について見ていきましょう。
桁数を指定して数字をチェックする方法
let num1 = "123";
let num2 = "1234";
let pattern = /^\d{3}$/;
let found1 = pattern.test(num1);
let found2 = pattern.test(num2);
console.log(found1);
console.log(found2);
この例では、
検索条件を^\d{3}$としています。
正規表現の意味ですが、
^ | 直後のパターンが先頭にある場合にマッチ |
\d | すべての半角数字にマッチ |
{回数} | 直前のパターンの繰り返し |
$ | 直前の文字が末尾にある場合にマッチ |
という意味になりますので、
3桁の数字にのみマッチするはずです。
では見てみると
こうですね。
3桁の数字「123」のみがtrueになっていますね。
まとめ
このように、正規表現を使うことで色々な形でチェックするための条件を指定することができます。
コメント