Help us understand the problem. What is going on with this article?

Javascriptで特定文字列の存在確認は.text()メゾッドを使う。でも注意が必要

More than 1 year has passed since last update.

特定文字列の存在確認

javascriptで特定文字列の存在確認をするだけなら、速度的にtest()メゾットを使うのいいようです。
返り値はboolean

あるパターンがある文字列内で見つかるかどうか調べたいときは、 test() を使用してください。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test

ただ注意が必要で、正規表現がグローバルフラグを持ってるかどうかで挙動が変わります。
lastIndexが加算されるので、繰り返しtest()メゾッドを利用する場合に、検索位置が変わりますので注意が必要です。

regex がグローバルフラグを持つ場合、 test() は regex が所有する lastIndex の値を加算します。その後に続けて test() を呼ぶと、 lastIndex から続く str の 部分文字列を検索します (exec() も同様に lastIndex プロパティの値を加算します)。注目すべきは、別な文字列で検索しても lastIndex がリセットされないことです。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/match

keyupイベントで、文字列のチェックをしていたときに、
正規表現にマッチする文字列があるにも関わらず、返り値がtrue/falseを繰り返すということが起こり
おかしいと思い調べたところ上記の仕様を知りました。

pappikko
おじいちゃんの孫
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away