标签:QQ qq Pattern comment 头像 邮箱
博客评论中使用QQ头像
这是发现了一个朋友所发感觉挺好用,就也给加进来了…
之前准备了30个头像包…摇个随机数当头像
评论时使用QQ邮箱的将会使用自己游戏的QQ头像
仅限于正确的QQ邮箱
Controller
// 新增评论
@PostMapping("/comments")
public String post(Comment comment, HttpSession session, Model model) {
Long blogId = comment.getBlogId();
User user = (User) session.getAttribute("user");
//生成随机头像并赋值
Random random = new Random();
int i1 = random.nextInt(31);
String avatarImg = "/images/commentAvatar/" + "avatar" + i1 + ".png";
if (user != null) {
comment.setAvatar(user.getAvatar());
comment.setAdminComment(true);
} else {
// 判断邮箱是否为qq邮箱
if (comment.getEmail().trim().toLowerCase().contains("@qq.com")){
String regEx = "[^0-9]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(comment.getEmail());
comment.setAvatar("http://q1.qlogo.cn/g?b=qq&nk="+m.replaceAll("").trim()+"&s=100");
}else {
// 如果不是正确的qq邮箱,使用随机赋值
comment.setAvatar(avatarImg);
comment.setAdminComment(false);
}
}
commentService.saveComment(comment);
List<Comment> comments = commentService.listCommentByBlogId(blogId);
model.addAttribute("comments", comments);
return "blog :: commentList";
}
当有评论发表时先判断是不是管理员发布如果是则默认使用管理员头像
不是的话判断是不是QQ邮箱如果是使用QQ头像,不是QQ邮箱的话将随机赋予准备好的头像
获取QQ邮箱的代码主要为
// 判断邮箱是否为qq邮箱
if (comment.getEmail().trim().toLowerCase().contains("@qq.com")){
String regEx = "[^0-9]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(comment.getEmail());
comment.setAvatar("http://q1.qlogo.cn/g?b=qq&nk="+m.replaceAll("").trim()+"&s=100");
}else {
// 如果不是正确的qq邮箱,使用随机赋值
comment.setAvatar(avatarImg);
comment.setAdminComment(false);
}
Pattern类的作用是编译正则表达式创建一个匹配模式。
Matcher类使用Pattern实例提供的匹配模式对正则表达式进行匹配。
Pattern的构造方法是私有的,不能直接创建,可以通过静态方法compile(String regex)来创建,将定义的正则表达式编译并赋给Pattern类。然后由Matcher对邮箱匹配获取QQ号码。
m.replaceAll("")把匹配到的字符串替换,和String的replaceAll()一样;
最后通过QQ提供的接口获取头像即可,s=100 表示获取的头像大小
http://q1.qlogo.cn/g?b=qq&nk=QQ号码&s=100
通过QQ提供的接口获取头像即可,s=100 表示获取的头像大小
http://q1.qlogo.cn/g?b=qq&nk=QQ号码&s=100
标签:QQ,qq,Pattern,comment,头像,邮箱 来源: https://blog.csdn.net/qq_42411307/article/details/115441919
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。