Поиск элемента строки в ключах массива

141
13 марта 2019, 14:00

Имеется строки такого вида

H 40%
K 45%, S 15%
K 15%, RUB 23%, SH 20%

И массив

var array = {'H': 'Hlopok','K': 'Karton','RUB': 'Rubin','SH': 'Shelk'};

Как сделать так, чтобы получился такой результат

Hlopok 40%
Karton 45%, S 15%
Karton 15%, Rubin 23%, Shelk 20%
Answer 1

Как вариант:

var str = 'H 40% K 45%, S 15% K 15%, RUB 23%, SH 20%'; 
var array = {'H': 'Hlopok','K': 'Karton','RUB': 'Rubin','SH': 'Shelk'}; 
 
result = str.replace(/\w+(?=\s\d+%)/g, m => array[m] ? array[m] : m); 
 
console.log(result);

Answer 2

Как вариант

const stringList = [ 
    'H 40%', 
    'K 45%, S 15%', 
    'K 15%, RUB 23%, SH 20%', 
]; 
 
const match = {'H': 'Hlopok','K': 'Karton','RUB': 'Rubin','SH': 'Shelk'}; 
 
const regex = new RegExp('\\b(' + Object.keys(match).join('|') + ')\\b', 'g'); 
 
console.log(stringList.map((str) => str.replace(regex, (matched) => match[matched])));

READ ALSO
Json строки в ресурсах String

Json строки в ресурсах String

Хочу ввести в приложение локализацию (новые языки: Анг, Рус, Латинь), но у меня RecycleViewAdapter берет строки с файла json как прописать в скрипте не саму...

173
Защитить <html> от remove()

Защитить <html> от remove()

У меня есть html страница со скриптом следующего содержания -

148