怎样在hustoj中验证用户输入QQ邮箱

2022年9月16日 | 分类: 【技术】

【介绍】

既然hostoj可以采用QQ头像,而一般大家都有QQ账号,不妨大家都使用QQ邮箱。

参考:https://blog.csdn.net/m0_56670717/article/details/122292262

	<script type="text/javascript">
		function checkEmail()
		{
			var email = document.getElementById("email").value;
			var regex = /^[0-9]*@qq.com/;
			if(regex.test(email)){
				return ture;
			}else{
				alert("请输入正确格式的QQ邮箱");
				return false;
			}
		}
	</script>

注意:

<form action="modify.php" method="post" role="form" class="ui form" onsubmit="return checkEmail()" >
<input name="email"  id="email" placeholder="10000@qq.com" type="text" onblur="checkEmail()" title="请输入正确格式的QQ邮箱" />

修改文件:
/home/judge/src/web/template/syzoj/registerpage.php
/home/judge/src/web/template/syzoj/modifypage.php

【参考】

参考:https://www.jianshu.com/p/82ad06f2140e

参考:https://blog.csdn.net/yilip/article/details/8143108
参考:https://blog.csdn.net/weixin_45663697/article/details/110038460

参考:https://tangjiusheng.com/js/332.html

邮箱正则表达式(用js正则验证邮箱格式)

如何用js正则验证邮箱格式,首先要知道邮箱格式有哪几种,比如常用的QQ邮箱就是纯数字的,邮箱域至少有一个“.”和两个单词,再严格点那么最后的顶级域至少要2个字母,最大呢?以域名“name”为准,那么最大就是4,宽松点就设为5吧。

邮箱正则表达式

一、市面上有以下几种邮箱格式:

1、纯数字的QQ邮箱,比如:1917843637@qq.com
2、纯字母,比如:dfvdfdf@7dadi.com
3、字母数字混合,比如:df666kkkdf@7dadi.com
4、带点的,比如:dfvdf.df@7dadi.com
5、带下划线,比如:dfvdf_df@7dadi.com
6、带连接线,比如:dfvdf-df@7dadi.com

二、邮箱格式说明:

1、邮箱域至少有一个“.”和两个单词,再严格点那么最后的顶级域至少要2个字母,最大呢?以域名“name”为准,那么最大就是4,宽松点就设为5吧^_^。
2、当然以上不可能的情况:以“_”或“-”开头或者结尾,包含特殊符号的。

因此,得出的js邮箱正则表达式为:

[a-zA-Z0-9]+([-_.][A-Za-zd]+)*@([a-zA-Z0-9]+[-.])+[A-Za-zd]{2,5}$

三、js邮箱正则表达式实例代码:

 //利用字面量创建js正则表达式
 let reg = /^[a-zA-Z0-9]+([-_.][A-Za-zd]+)*@([a-zA-Z0-9]+[-.])+[A-Za-zd]{2,5}$/
 console.log(reg.test('7dadi.com')) //false 不是邮箱
 console.log(reg.test('1917843637@qq.com')) //true是邮箱(纯数字的QQ邮箱)
 console.log(reg.test('dfvdfdf@7dadi.com')) //true是邮箱(纯字母)
 console.log(reg.test('df666kkkdf@7dadi.com')) //true是邮箱(字母数字混合)
 console.log(reg.test('dfvdf.df@7dadi.com')) //true是邮箱(带点的)
 console.log(reg.test('dfvdf_df@7dadi.com')) //true是邮箱(带下划线)
 console.log(reg.test('dfvdf-df@7dadi.com')) //true是邮箱(带连接线)

参考:https://blog.csdn.net/qq_40641932/article/details/108623159

JAVA正则判断是否输入为QQ邮箱
通过{ }限制位数,通过\\匹配特殊符号,通过[ ]限制输入内容。
+表示一个或者多个,*表示0个或者多个,?表示0个或者1个。

import java.util.Scanner;
public class one {
    public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      String s1 = sc.nextLine();
      String regex = "[1-9][0-9]{8,10}\\@[q][q]\\.[o][m]";
      if(s1.matches(regex)){
          System.out.println("这是QQ邮箱");
      }else {
          System.out.println("请输入QQ邮箱");
      }
    }
}