скрипт, который извлечет строку между определенным шаблоном в файле HTML.
Пример: предположим, если в тексте HTML есть:
<p translate = "index_word1" > </p>
Результат должен быть:
index_word1
В основном нужна строка между translate = "эта строка".
Я предполагаю, что последовательный понижающий голос вызван тем, что ни один из ответов не «читает файл» - вы, по сути, задали два вопроса: «как читать файл», «как разбирать строку» - все ответили на единственный разумный вопрос. Другой - огромный риск для безопасности (при условии, что клиент js, а не node.js, которого не было в тегах).
все ответы ниже работают в соответствии с требованиями, поэтому я поддержал рабочие ответы. но дали принятый ответ на оптимизированный код.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать DOMParser для преобразования строки в документ, после чего вы можете querySelectorAll поверх него, чтобы найти элементы с атрибутами translate:
const str = `<p translate = "index_word1" > </p>
<strong translate = "index_word2"></strong>`;
new DOMParser()
.parseFromString(str, 'text/html')
.querySelectorAll('[translate]')
.forEach(element => console.info(element.getAttribute('translate')));Это сработало, как требовалось, спасибо
В вашем случае ваш матч будет m[1]
const regex = /translate = "(.+)"/gm;
const str = `<p translate = "index_word1" > </>
<strong translate = "index_word2"></strong>`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.info(`Found match, group ${groupIndex}: ${match}`);
});
// Your case
console.info(`Your case: ${m[1]}`)
}работает согласно требованию вопроса. Благодарность
Вы можете использовать карту для извлечения атрибутов translate:
$("[translate]").map(function(i, el) { return $(this).attr("translate"); }
Пример чтения из строки:
var s = '<p translate = "index_word1"><p/><strong translate = "index_word2"></strong>';
var html = $("<div>").append(s);
var arr = $("[translate]", html).map(function(i, el) { return $(this).attr("translate"); }).toArray();
console.info(arr);
$.each(arr, function(i) { $("#out").append(arr[i] + "<br/>"); });<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id = "out"></div>работает согласно требованию вопроса. Благодарность
Извините, но вам нужно сначала показать нам, что вы пробовали, опубликуйте свой минимальный воспроизводимый пример и объясните, с какой проблемой вы столкнулись в своей реализации.