У меня есть следующие Array
из strings
:
array = [
"My Website | :PrismicReplace|title"
"My Website | Contact Us"
];
Я хочу l oop для этих массивов, и если элемент содержит :PrismicReplace
, я хочу извлечь значение после канал, такой что :PrismicReplace|title
внутри строки возвращает обратно title
в качестве ключа ...
т.е.
>> my_function("My Website | :PrismicReplace|title")
title
Строка может быть:
"My Website | :PrismicReplace|someReallyReallyReallyLongParameter"
(возвращает someReallyReallyReallyLongParameter)
или
"My Website | :PrismicReplace|someReallyReallyReallyLongParameter Some Other Stuff"
(по-прежнему возвращает someReallyReallyReallyLongParameter)
Я пытался комбинация циклов и совпадений регулярных выражений, но она пока не совсем работает, как я и собирался ... но я думаю и надеюсь, что есть быстрый способ обойти это? Лучшее, что у меня есть, это:
if (new RegExp(':PrismicReplace').test(tagDef.content)) {
for (const [key, value] of Object.entries(prismic)) {
let paramRegex = new RegExp(`:PrismicReplace|${key}`);
if (paramRegex.test(tagDef.content)) {
tagDef.content = tagDef.content.replace(paramRegex, prismic[key]);
}
}
}