fix(qrcode): 修复图片右键菜单功能描述和检测逻辑
- 修改菜单标题为「解析图片二维码」更准确 - 改进 isImageUrl 函数,支持更多图片URL格式 - 支持 data:image/ 格式 - 支持URL路径中包含图片相关关键词 - 更新国际化文案和测试用例
This commit is contained in:
@@ -27,9 +27,26 @@ function isUrl(text: string): boolean {
|
||||
|
||||
/** 检测URL是否为图片格式 */
|
||||
function isImageUrl(url: string): boolean {
|
||||
const trimmedUrl = url.trim().toLowerCase();
|
||||
|
||||
// 检查是否为 data:image 格式
|
||||
if (trimmedUrl.startsWith('data:image/')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// 检查是否包含图片扩展名
|
||||
const imageExtensions = ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp', '.svg', '.ico'];
|
||||
const lowerUrl = url.toLowerCase();
|
||||
return imageExtensions.some((ext) => lowerUrl.includes(ext));
|
||||
if (imageExtensions.some((ext) => trimmedUrl.includes(ext))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// 检查URL路径中是否包含图片相关关键词
|
||||
const imageKeywords = ['/image/', '/img/', '/photo/', '/pic/', '/upload/'];
|
||||
if (imageKeywords.some((keyword) => trimmedUrl.includes(keyword))) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/** 生成二维码的核心逻辑 */
|
||||
|
||||
Reference in New Issue
Block a user