正则表达式:将YouTube链接v=后的特定"]"替换为">"
解决方案
直接用精准匹配的正则就能搞定,核心思路是锁定YouTube的v=链接格式,只替换该链接末尾的]:
const atag = '[url=https://www.youtube.com/watch?v=gk8ftgR9jK]Final digit was removed[/url]'; const processedStr = atag.replace(/(https:\/\/www\.youtube\.com\/watch\?v=[^\]]+)\]/, '$1>');
正则说明
(https:\/\/www\.youtube\.com\/watch\?v=[^\]]+):捕获YouTube完整链接,[^\]]+确保只匹配到]之前的内容,不会误抓其他字符\]:定位要替换的目标符号- 替换逻辑:把捕获的链接原样保留,只把末尾的
]换成>
执行后得到的结果是:
[url=https://www.youtube.com/watch?v=gk8ftgR9jK>Final digit was removed[/url]
如果要兼容更多YouTube域名格式,还可以调整正则的匹配范围,但针对你给出的场景,上面的写法完全够用。
内容的提问来源于stack exchange,提问作者crashwap
相关产品推荐
相关产品推荐

