LANG SELRCT

コードを書く場所についてはこちら

2018年9月18日火曜日

指定した文字列の前後に特定の文字列を追加したい


指定した文字列の前後に
特定の文字列を足したい
そして末尾が特定の文字列の場合に削除したい

と言語化してもよくわからないのでもう少し具体的な例を以下に書きます



以下のような正規表現を作りたい
["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;
}