正規表現で特定の文字列が含まれているか調べる方法

Programming

今回はJavaScriptと正規表現を使って本文中に特定の文字列が含まれているかどうかを調べる方法を紹介します。
検索の仕組みの基本的な方法なので、しっかり覚えておきましょう。

こんな場合に使用

  • ある文字列を見つけたい
  • TELもしくはMAILの2重チェックをしたい
  • 条件にマッチした文字列を検索したい
難易度(MAX10)★★★★☆☆☆☆☆

JSと正規表現で特定の文字列が含まれているかを調べる方法

JavaScriptで特定の文字列を検出するには正規表現.test()を使用します。

/パターン/.test(文字列)文字列がパターンとマッチするか

例えば、
/A/.test(‘ABC’);の場合は「ABC」に「A」含まれているのでtureになります。
/D/.test(‘ABC’);の場合は「D」は含まれないのでfalseになります。
実際の使い方は以下です。

const test1 = /J/.test('JavaScript');
const test2 =/^iP/.test('iPhone');
const test3 =/\d/.test('鈴木');
const test4 =/鈴.*郎/.test('鈴木一郎');
const test5 =/\d+-\d+-\d+/.test('090-0000-1111');
console.log(test1)
console.log(test2)
console.log(test3)
console.log(test4)
console.log(test5)
最上:test1〜最下:test5

以下のサンプルは、ハイフンありなし、携帯電話or固定電話の電話番号になっているかどうかを判断する正規表現を使った、簡易的な電話番号チェック機能です。
(悪戯防止のためにほとんどのフォームには使用されているので意味を覚えましょう。)

HTML

<h2>電話番号を入れて下さい</h2>
<input id="TelNumberText" placeholder="電話番号" type="tel">
<p id="Message"></p>

JavaScript

const TelNumberText = document.querySelector('#TelNumberText');
const Message = document.querySelector('#Message');
TelNumberText.addEventListener('keyup' , () => {
    const TelNumber = TelNumberText.Value;
    const trimeTelNumber = TelNumber.replace(/[━.*‐.*―.*-.*\-.*ー.*\-]/gi,'');
    if (/^(0[5-9]0[0-9]{8}|0[1-9][1-9][0-9]{7})$/).test(trimeTelNumber) === false) {
        Message.innerHTML = '電話番号を正しく入力して下さい';
    } else {
        Message.innerHTML = '';
    }
});

以下の様な感じに間違ったテキストを入力するとエラー文が表示されます。


以上が「正規表現で特定の文字列が含まれているか調べる方法」でした。

以下はJavaScriptで良く使われる正規表現まとめです。参考にしてみて下さい。

この記事を書いた人
KEITO

AI × IT × WEB3|関東在住。本職はディレクター 。AIを活用してビジネス開拓。仕事の依頼はTwitterからお願いします。YouTube、Twitter、Instagramもお願い致します。

Programming
この記事を共有する
スポンサーリンク
スポンサーリンク
KT LIFE
スポンサーリンク

暗号資産投資するなら以下

Bybit

国内人気No.1!屈強なサーバー/信頼性抜群!トレーダー御用達の取引所。

通貨数338種以上
レバレッジ最大100倍
現物取引手数料Maker:0%〜0.1%
Taker:0.02%〜0.1%
先物取引手数料Maker:0%〜0.01%
Taker:0.03%〜0.06%
操作性スマホでも取引・入金できる
口座開設簡単に口座開設できる
日本語対応日本語対応あり・JPY利用可
特典下記から登録で初回ボーナスあり
登録リンクBybitへの登録は こちら
招待コード22295
レビュー記事レビュー記事は こちら
BigBoss&CRYPTOS

最大レバレッジ1111倍・日本円換金ルート

通貨数BigBoss:15種以上
CRYPTOS:15種以上
レバレッジ最大1111倍
スポット手数料Maker:0.02%〜0.18%
Taker:0.05〜0.20%
先物取引手数料
操作性スマホでも取引・入金できる
口座開設少し敷居が高い
日本語対応日本語対応あり
特典下記から登録で初回ボーナスあり
登録リンクBigBossへの登録は こちら
招待コード6690951
レビュー記事レビュー記事は こちら
Nexo

高APYでのステーキング&レンディング

通貨数60種以上
レバレッジ
スポット手数料Maker:0.04%〜0.20%
Taker:0.03%〜0.20%
先物取引手数料
操作性スマホでも取引・入金できる
口座開設簡単に口座開設できる
日本語対応日本語対応あり
特典下記から登録で初回ボーナスあり
登録リンクNexoへの登録は こちら
招待コード
レビュー記事レビュー記事は こちら

他おすすめ取引所はこちら

タイトルとURLをコピーしました