Функция Google Sheets для преобразования строки в читаемый URL - PullRequest
1 голос
/ 05 апреля 2019

Я ищу функцию google-листов для преобразования строки в читаемый URL

1002 * * строка: "Умирает от струн в немецком языке, а также в умных силах"

URL: "Умирает-IST-Эйн-строка-в-Дойч-мит-Scharfen-сс-унд-laestigen-bloeden-umlauten"

  • А до
  • Ü до
  • Ö до
  • ае
  • UU
  • ö до
  • от сс
  • "пробел" до -

Ответы [ 2 ]

1 голос
/ 08 апреля 2019
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LOWER(A2), 
 "ä", "ae"), 
 "ü", "ue"),
 "ö", "oe"),
 "ß", "ss"), 
 " ", "-")

0


для массива возьмите это:

=ARRAYFORMULA(IFERROR(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LOWER(A2:A), 
 "ä", "ae"), 
 "ü", "ue"),
 "ö", "oe"),
 "ß", "ss"), 
 " ", "-")))
1 голос
/ 06 апреля 2019

Создать эту пользовательскую функцию

function multipass(text, ChangeFrom, ChangeTo) {
  ChangeFrom = ChangeFrom.map (String);
  var re = new RegExp(ChangeFrom.join('|'), 'g');
  return text.replace(re, function (match) {return 
  ChangeTo[ChangeFrom.indexOf(match)];});
}

Из WebApps Несколько замен в одном тексте ; любезно предоставлено Норманом Анструтером.

Мой окончательный ответ:
=lower(multipass(B1,D2:D9,E2:E9)) - это комбинация multipass (для многократного преобразования) и lower (для уменьшения оставшихся заглавных букв до строчных).


enter image description here


REVISION - найти и заменить значения в функции

function fandr(text) {
  // add key:value pairs to the "find_replace" variable
  var find_replace = {
    'Ä': 'ae',
    'Ü': 'ue',
    'Ö': 'oe',
    'ä': 'ae',
    'ü': 'ue',
    'ö': 'oe',
    'ß': 'ss',
    ' ': '-'
  };

  // loop through the keys and replace with the value
  Object.keys(find_replace).map(function(find) {
    var replace = find_replace[find];
    // Logger.log("DEBUG: find key: "+find+", replace value: "+replace);//DEBUG
    // note the "g" - this is to replace all the matches for the given key/value pair
    text = text.replace(find, replace, "g");
    //Logger.log("DEBUG: modified text = "+text);//DEBUG
  });
  //Logger.log("DEBUG: Final modified text = "+text.toLowerCase());//DEBUG
  return text.toLowerCase();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...