†でおきしブログ†

ウナギ食べたいヽ(•̀ω•́ )ゝ✧

【JavaScript】LF改行された文字列(複数行)を正規表現で抽出

仕事で初めて正規表現のオプションm(multiline)使ったのでメモです。

☆こんな文字列

testDayo
fuga
test
hoge

この中からtestが含まれるものを抽出していきます。

☆html

textareaを用意

☆結果


正規表現の説明

matchメソッドの正規表現がミソ。
/^.*test.*$/gm

gmっていうオプション。
  • m
    • multiline。\nや\rの改行コードで区切られた複数行文字列として処理されます。基準に正規表現の文頭"^"と文末"$"がそれぞれの行に対応。
  • g
    • global。これつけないと全部の行を走査してくれない。

もちろんmgって書いても良い。順番は関係ない。

で、正規表現を^.*test.*$とする事で、各行の"文頭~test~文末"っていう条件で抽出できました。


以上!!

☆蛇足(RegExpでの複数フラグ設定)

RegExpで複数フラグを設定する場合も同じく連続でgmとかって書いとけばOK
RegExp("^.*test.*$","gm")

☆蛇足(JSFiddleのEmbedが消えるんだが??)

Save押したらしたらEmbedのボタンが消える。
Why?

ちなみにLoginして使っていないけど、それが原因なのかな??

★回避方法

右上の"Sign in"をクリックして画面遷移した後に戻るボタン(ヒストリーバック)するとEmbedが復活する

何なんだろう??

☆蛇足(JSFiddleの埋め込み時にはiframeを選択するが吉)

f:id:deokisikun:20190318200807j:plain
iframeじゃないと埋め込みウィンドウの高さが低くて見づらくなりました(><; )

☆蛇足(JSFiddleでデバッグ)

JSFiddleのJavaScriptて普通にWebインスペクタだと表示されないんですよね。理由はわからんけど。
そんな時は"debugger;ステートメント"!

  • [JSFiddle]JSのコードに"debugger;"って書いとく
  • webインスペクタ起動
  • [JSFiddle]Rrun!
  • WebインスペクタでJavascriptのコードが表示されるので、所望のところにbreak張る
  • "debugger;"をコメントアウトか削除する
  • [JSFiddle]もっかいRrun!
  • はいbreakした!

developer.mozilla.org


"debugger;ステートメント"って、Webインスペクタから対象のソースコード開かなくても勝手に開いてくれる効果があるわけですが、JSFiddleとかのサンドボックスツール使ってる時しか使う機会なさそう。