大家好,我是 luckySnail ,最近在发文章的时候,发现一个 bug,当使用 markdown 链接格式[]()
的时候,如果链接中包含空格,就会出现下面这种情况。
非常影响体验,但是链接中携带空格是非常常见的现象。于是打算解决一下
解决
项目使用 markdown渲染和编辑都是 bytemd 。于是看看掘金,发现也存在这种情况。
其实解决方法也很简单,就是把链接中的空格替换为:%20
// 替换链接中的空格为 %20
const encodedValue = value.replace(/[([^]]+)](([^)]+))/g, (match, text, url) => {
const encodedUrl = url.replace(/ /g, '%20');
return `[${text}](${encodedUrl})`;
});
在 URL 中,空格是一个不安全的字符,所以我们需要进行编码。%20
是空格的 URL 编码形式。URL 编码(也称为百分号编码)是一种将 URL 中的特殊字符转换为安全格式的方式,这里我们使用正则表达式将 Markdown 链接中的空格替换为 %20
,也就保证了链接在解析时不会因为空格而出现问题
你可能感兴趣:
- 这样优化代码,年终奖有了:juejin.cn/post/745122…
- cursor使用经验:juejin.cn/post/744048…
- 好爱看土味视频,于是专门做了一个网站:juejin.cn/post/744640…