正規表現を変数にして一致する文字を出力するUIを作ってみる
デモ
.match(
)
コード.gs
function doGet() { return HtmlService.createHtmlOutputFromFile("index"); } |
意訳この機能がやること 指定したHTMLファイルを表示する |
index.html
<!DOCTYPE html> <html> <head> <style> .ta { width: 360px; height: 120px; } .flag { width: 60px; } .text_dimgray { color: dimgray; } .text_orange { color: darkorange; font-weight: bold; font-size: 16px; } .regexp { font-size: 16px; } </style> </head> <body> <label class="text_dimgray">この文字列の中から一致する文字列を探したい</label> <br> <textarea id="input" class="ta"></textarea> <br> <div class="regexp">.match( <label class="text_orange">/ <input type="text" id="tb" class="text_orange" placeholder="一致させたい文字列">/ <input type="text" id="tb_flag" class="flag text_orange" placeholder="g,i,m等"> </label>) </div> <br> <label class="text_dimgray">一致する文字列</label> <br> <textarea id="output" class="ta"></textarea> <script> var tb = document.getElementById("tb"); var tb_flag = document.getElementById("tb_flag"); var input = document.getElementById("input"); var output = document.getElementById("output"); tb.onkeyup = get_result; tb_flag.onkeyup = get_result; function get_result() { var target = tb.value; var flag = tb_flag.value; var pattern = new RegExp(target, flag); output.value = input.value.match(pattern); } </script> </body> </html> |
意訳taのスタイル 幅 高さ flagのスタイル 幅 text_dimgrayのスタイル 文字色 text_orangeのスタイル 文字色 文字の太さ 文字サイズ regexpのスタイル 文字サイズ ラベル インプットエリア 正規表現を入力するエリア ラベル 出力エリア idがtbの要素を取得 idがtb_flagの要素を取得 idがinputの要素を取得 idがoutputの要素を取得 tbでキーが上がったらget_resultを実行する tb_flagでキーが上がったらget_resultを実行する この機能がやること tbのvalue(正規表現)を取得して tb_flagのvalue(フラグ)を取得して 正規表現のオブジェクトを作成して output(出力エリア)に一致する文字列を出力する |