有人知道这个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上的页面(的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