指定した文字列の前後に
特定の文字列を足したい
そして末尾が特定の文字列の場合に削除したい
と言語化してもよくわからないのでもう少し具体的な例を以下に書きます
例
以下のような正規表現を作りたい
["aaa", "bbb"]
から
/^aaa$|^bbb$/
を作りたい
作る手順
このような配列を用意して
["aaa", "bbb"]
それぞれの前後に ^ と $| を追加して
このような文字列を作って
^aaa$|^bbb$|
末尾の | を削除して
^aaa$|^bbb$
このような正規表現をつくる
/^aaa$|^bbb$/
ということを実現するコードです。
コード.gs
function get_regexp(){ var array = ["aaa", "bbb"]; var front = "^"; var rear = "$|"; var tail = "|"; var str = get_str_sandwich(array, front, rear, tail); Logger.log(str); var regexp = new RegExp(str); Logger.log(regexp); } function get_str_sandwich(array, front, rear, tail) { var str = ""; for(var i = 0; i < array.length; i++){ str += front + array[i] + rear; } Logger.log(str); if(str.slice(-1) === tail){ str = str.slice(0, -1); } return str; } |