JavaScript正则:如何移除字符串首个[与末个]间内容提取目标URL?
解决方法
你的问题出在原正则的匹配逻辑上:[^\]]*只会匹配到第一个]就停止,没法处理[]内部嵌套的](比如你字符串里图片标记的]),所以替换后会留下多余的)](部分。
要移除第一个[到最后一个]之间的所有内容,直接用贪婪模式的正则即可:
const original = '[Abc ](https://quiz.com?/quiz_id=2/quiz_name=15/level=null)'; const result = original.replace(/ *\[.*\]/, ''); // result 就是目标URL:https://quiz.com?/quiz_id=2/quiz_name=15/level=null
原理说明
*:匹配前面可能存在的空格(和你原正则的逻辑一致)\[:匹配第一个[.*:贪婪匹配任意字符(会一直匹配到最后一个]才停止)\]:匹配最后一个]
整个正则会精准匹配从第一个[到最后一个]的完整区块,替换为空后就得到你要的URL。
内容的提问来源于stack exchange,提问作者user21220774
相关产品推荐
相关产品推荐

