gpt4 book ai didi

javascript - JavaScript 和正则表达式的问题

转载 作者:太空宇宙 更新时间:2023-11-04 13:57:14 24 4
gpt4 key购买 nike

我正在尝试获取 YouTube 链接并获取它的 ID(效果很好)。我正在尝试创建一个函数来检测输入的文本是 URL 还是只是 Id。像这样:

function youtube_do(video, width, height) {
var make_syntax;
var regexp_url;

regexp_url = /((mailto\:|(news|(ht|f)tp(s?))\://){1}\S+)/;

if(regexp_url.test(video) = false) {
make_syntax = embed_format(youtube_id_extract(video), width, height);
} else {
make_syntax = embed_format(video, width, height);
}

document.writeln(make_syntax);
}

然后像这样执行:

<script type="text/javascript" src="js/YouTube.js"></script>

<h1>YouTube Example</h1>
<script type="text/javascript">
youtube_do("http://www.youtube.com/watch?v=VMl_71dqeR8", "640", "390");
</script>

当我在浏览器中尝试时,我什么也没得到,所以我开始调试,但我得到了这个错误:

YouTube.js:22 - SyntaxError: Parse error
YouTube.htm:5 - ReferenceError: Can't find variable: youtube_do

其中 22 是 if 语句的确切行。我应该怎么做才能纠正这个问题?

最佳答案

几点:

1) 您的正则表达式无效,因为它包含斜杠。这会报错。您需要转义斜线。

2) 正则表达式中的 {1} 是多余的 - 如果您不指定量词,则隐含 {1}。这不会给出错误,但为了清楚起见,您应该忽略它。

3) 没有必要在正则表达式中转义:。这不会产生错误,但不必要的转义会降低可读性,因此您应该删除不必要的反斜杠。

4) 你的正则表达式中有不必要的括号。这不会产生错误,但会使其更难阅读,因此应将其删除。

在这些更改之后,这一行看起来像这样:

regexp_url = /(mailto:|(news|(ht|f)tps?):\/\/)\S+/;

5) 运算符 = 也执行赋值。这会报错。您应该改用 if (!...):

if (!regexp_url.test(video))

关于javascript - JavaScript 和正则表达式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4855666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com