gpt4 book ai didi

javascript - string.replace 奇怪的行为

转载 作者:行者123 更新时间:2023-12-03 11:15:42 24 4
gpt4 key购买 nike

我有一个应用程序可以获取 youtube 视频 ID,以便通过 Twitter 分享它们。查看推文,我可以看到用户正在分享它们,但在某些情况下分享内容已损坏。

我们有一个 Restful API,它以 id 进行响应,然后使用字符串替换方法替换 {{id}}。

http://twitter.com/intent/tweet?text=http://www.youtube.com/watch?v={{id}} Share your video to win.

替换方法

var href = $('#twitter-btn').attr('href');

$('#twitter-btn').attr('href', href.replace('{{id}}', response.youtube_id) );

在大多数情况下,推文可以这样看......

http://www.youtube.com/watch?v=0bxW5fd Share your video to win.

但在某些情况下我们看到......

http://www.youtube.com/watch?v

我发现真正奇怪的是“=”也被删除了。我们已经排除了服务器给出错误响应的可能性,因为我们正在记录所有 ID 以检查它们是否有效。

有谁知道这是如何发生的,或者如果某些 ID 破坏了 Twitter,因为我知道“#”符号需要将 url 编码为 %23,否则就会破坏。

共享功能使用标准 Twitter 共享来工作。

<script type="text/javascript" async src="//platform.twitter.com/widgets.js"></script>

这真的让我很困惑,因为这是一项基本任务,我无法理解这是如何发生的。

任何想法将不胜感激。

最佳答案

replace isn't broken 。如果 href 字符串确实包含

http://twitter.com/intent/tweet?text=http://www.youtube.com/watch?v={{id}} Share your video to win

...然后如图所示的替换{{id}}替换为response.youtube_id中的值.

鉴于 = 没有出现在结果中,我看到的唯一可能性是:

  1. href 首先没有 ={{id}} 。也许在您获取属性之前,某些东西正在修改该属性。

  2. 您不是直接查看replace的结果,而是查看从中派生的结果,并且在派生过程中 >= 以及删除后的值,也许仅当 = 最初后面跟着无效的内容(可能是空白)时 - 在这种情况下,问题将出在 >response.youtube_id

但不要关注替换,这不是问题。

关于javascript - string.replace 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27355984/

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