Кто-нибудь знает, откуда эта ошибка JavaScript?SyntaxError: ожидаемое выражение, получено '.'
SyntaxError: expected expression, got '.'
Я получаю эту ошибку при использовании регулярных выражений с косой черты (сбежавшего), как el.href.match(/video\/(.*)@/)[1];
в качестве строки, переданной функции как createTextNode, TextContent или innerHTML.
Это регулярное выражение работает, когда оно не сохраняется в виде текста. Регулярного выражения без слэша как текст работа, вы можете увидеть мой пример кода:
HTML:
<a style="display: none; width: 840px; height: 472px;" href="http://videos.francetv.fr/video/[email protected]" id="catchup" class="video"></a>
JavaScript:
var el = document.getElementById("catchup");
var script = document.createElement("script");
var text = `
(function() {
var id = el.href.match(/video\/(.*)@/)[1];
alert("test 4 - regex with slash as text: " + id);
})();`;
script.appendChild(document.createTextNode(text));
document.getElementsByTagName("head")[0].appendChild(script);
Работу и неудовлетворительные тесты можно найти здесь:
Вы можете проверить его жить на GitHub Pages (JSFiddle не работает в моем случае):
https://baptx.github.io/get_m3u8_debug/get_m3u8_debug.htm
вы должны были пройти соответствующий код непосредственно на вопрос (в случае, если вы удалите репо) и правильная ссылка должна указывать на конкретную версию, а не к главной ветви - [https://github.com /baptx/baptx.github.io/blob/65f11b77df5a7464365374b3505921a4ef9b1272/get_m3u8_debug/get_m3u8_debug.htm](https://github.com/baptx/baptx.github.io/blob/65f11b77df5a7464365374b3505921a4ef9b1272/get_m3u8_debug/get_m3u8_debug.htm) – Aprillion
@Aprillion Спасибо , Я подумал о добавлении кода в StackOverflow, но я хотел, чтобы люди также видели все рабочие случаи.Обычно я не удаляю репо, но у меня возникла идея создать резервную копию ссылки на Wayback Machine. Https://web.archive.org/web/20161022102615/https://baptx.github.io/get_m3u8_debug/get_m3u8_debug.htm Хорошая точка для конкретной версии, если я хочу исправить ошибку. – baptx