0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

特定文字列の存在確認

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を繰り返すということが起こり
おかしいと思い調べたところ上記の仕様を知りました。

0
0
1

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?