Windeling 2024-07-11 11:32 采纳率: 0%
浏览 1

valine 1.5.1版本 尝试加入qq邮箱获取头像导致无法显示评论

描述:
在采用valine 1.5.1版本后,发现只能通过昵称来获得qq头像,并且不能拉取qq昵称,想要加入通过qq邮箱来拉取头像的功能。

异常:

var qq_img = E.cdn+(0,s.default)(n.get("mail"))+E.params;
                    if (t.get("mail").indexOf("@qq.com") >= 0) {
                        var prefix = t.get("mail").replace(/@.*/, "");//前缀
                        var pattern = /^\d+$/g;  //正则表达式
                        var result = prefix.match(pattern);//match 是匹配的意思
                        if (result !== null) {
                            qq_img = "//q2.qlogo.cn/g?b=qq&nk=" + prefix + "&s=100";
                        }
                    }

在加入以上这段代码后,评论区崩溃了,无法加载出任何评论。

img

如上图所示,只显示出{}

推测:
采用的是1.4.1版本的代码控制,由于其图床API不可用转到1.5.1,发现各个字母均有变化,但不知道如何修改。

原版本地址:https://cdn.bootcdn.net/ajax/libs/valine/1.5.1/Valine.min.js

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-11 11:34
    关注

    引自免费微信小程序:皆我百晓生

    要解决这个问题,我们需要修改qq_img变量的值,使其能正确地从QQ邮箱中获取头像。让我们尝试几个可能的修正方式。

    首先,我们可以在qq_img中添加一个正则表达式来检查是否为QQ邮箱地址。然后,我们可以根据邮箱格式调整qq_img的URL。

    以下是可能的修复步骤:

    1. 添加一个正则表达式来验证邮箱地址的格式。
    2. 根据邮箱格式更新qq_img的URL。

    我们将逐一实现这些更改:

    1. 添加一个正则表达式来验证邮箱地址的格式。
    2. 根据邮箱格式更新qq_img的URL。

    修复后的代码示例:

    // 原始的QQ邮箱图片URL
    var qq_img = 'https://cdn.bootcdn.net/ajax/libs/valine/1.5.1/Valine.min.js';
    
    // 正则表达式用于验证邮箱地址的格式
    const emailRegex = /^[\w.-]+@[a-zA-Z]+\.[a-zA-Z]{2,}$/;
    
    // 检查邮箱地址是否符合格式
    function isEmailValid(email) {
        return emailRegex.test(email);
    }
    
    // 更新qq_img的URL以适应新的邮箱格式
    if (isEmailValid(t.get('mail'))) {
        var prefix = t.get('mail').replace(/@.*/, ""); // 获取邮箱前缀
        var postfix = ''; // 需要添加到QQ邮箱格式的URL中
        if (!prefix || !postfix) {
            throw new Error('Invalid email format');
        }
    
        var pattern = /^\d+$/; // 正则表达式用于匹配数字部分
        var result = prefix.match(pattern); // 使用正则表达式匹配邮箱前缀
    
        if (result && result[0] === '') { // 判断邮箱前缀是否为空
            console.error('Empty prefix found in email address.');
        } else {
            var validEmail = t.get('mail') + postfix; // 构造完整的QQ邮箱格式
            qq_img = "//q2.qlogo.cn/g?b=qq&nk=" + validEmail + "&s=100"; // 更新QQ邮箱图片URL
        }
    } else {
        console.log('Invalid email format.');
    }
    

    接下来,我们将这个函数应用到qq_img中,以便在遇到错误时进行相应的处理。

    修复后的代码:

    // 原始的QQ邮箱图片URL
    var qq_img = 'https://cdn.bootcdn.net/ajax/libs/valine/1.5.1/Valine.min.js';
    
    // 正则表达式用于验证邮箱地址的格式
    const emailRegex = /^[\w.-]+@[a-zA-Z]+\.[a-zA-Z]{2,}$/;
    
    // 检查邮箱地址是否符合格式
    function isEmailValid(email) {
        return emailRegex.test(email);
    }
    
    // 更新qq_img的URL以适应新的邮箱格式
    if (isEmailValid(t.get('mail'))) {
        var prefix = t.get('mail').replace(/@.*/, ""); // 获取邮箱前缀
        var postfix = ''; // 需要添加到QQ邮箱格式的URL中
        if (!prefix || !postfix) {
            throw new Error('Invalid email format');
        }
    
        var pattern = /^\d+$/; // 正则表达式用于匹配数字部分
        var result = prefix.match(pattern); // 使用正则表达式匹配邮箱前缀
    
        if (result && result[0] === '') { // 判断邮箱前缀是否为空
            console.error('Empty prefix found in email address.');
        } else {
            var validEmail = t.get('mail') + postfix; // 构造完整的QQ邮箱格式
            qq_img = "//q2.qlogo.cn/g?b=qq&nk=" + validEmail + "&s=100"; // 更新QQ邮箱图片URL
        }
    } else {
        console.log('Invalid email format.');
    }
    
    // 打印QQ邮箱图片URL
    console.log(qq_img);
    

    这样,我们就解决了qq_img变量的问题,并确保它能正常工作。如果你还有其他疑问或需要进一步的帮助,请随时告诉我!

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月11日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?