java正则表达式校验手机号,电话号码,邮箱

1 数字:^[0-9]*$

2 n位的数字:^\d{n}$

3 至少n位的数字:^\d{n,}$ 

4 m-n位的数字:^\d{m,n}$ 

5 零和非零开头的数字:^(0|[1-9][0-9]*)$ 

6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 

71-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 

8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$ 

9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$

101~3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$

11 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$

12 非零的负整数:^\-[1-9][]0-9"*$ 或 ^-[1-9]\d*$

13 非负整数:^\d+$ 或 ^[1-9]\d*|0$

14 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$

15 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$

16 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$

17 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$

18 负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$

19 浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

二、校验字符的表达式

1 汉字:^[\u4e00-\u9fa5]{0,}$ 

2 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$ 

3 长度为3-20的所有字符:^.{3,20}$ 

426个英文字母组成的字符串:^[A-Za-z]+$ 

526个大写英文字母组成的字符串:^[A-Z]+$ 

626个小写英文字母组成的字符串:^[a-z]+$ 

7 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$ 

8 由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$ 

9 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$

10 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$

11 可以输入含有^%&',;=?$\"等字符:[^%&',;=?$\x22]+

12 禁止输入含有~的字符:[^~\x22]+


校验手机号:

phone.matches("1[3-9]\\d{9}")

校验电话号码:

tel.matches("0\\d{2,6}-?\\d{5,20}")

校验邮箱

email.matches("\\w{1,30}@[a-zA-Z0-9]{2,20}(\\.[a-zA-Z0-9]{2,20}){1,2}")
package test;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.util.Assert;

import java.util.Scanner;

@SpringBootTest
class PhoneDemoApplicationTests {

    @Test
    void contextLoads() {

    }

    @Test
    public static void main(String[] args) {

        //验证数字
        checkNumber();

        //验证手机号
        checkPhone();

        //验证电话号码
        checkTel();

        //验证邮箱
        checkEmail();

    }

    //验证数字
    @Test
    public static void checkNumber(){
        Scanner scanner = new Scanner(System.in);
        while (true){
            System.out.println("请输入数字:");
            String num = scanner.next();
            if (!num.matches("^[0-9]*$")){
                Assert.notNull(null,"数字不合法");
            }
        }
    }
    //验证手机号
    @Test
    public static void checkPhone(){
        Scanner sc=new Scanner(System.in);
        while (true) {
            System.out.println("请输入您的手机号:");
            String phone=sc.next();
            //校验手机号(正则表达式)
            if (!phone.matches("1[3-9]\\d{9}")) {
                //如果出错直接抛异常
                Assert.notNull(null,"手机号不合法");
            }
        }
    }

    //验证电话号码
    @Test
    public static void checkTel(){
        Scanner sc=new Scanner(System.in);
        while (true) {
            System.out.println("请输入您的电话号码:");
            String tel=sc.next();
            //校验手机号(正则表达式)
            if (!tel.matches("0\\d{2,6}-?\\d{5,20}")) {
                Assert.notNull(null,"电话号码不合法");
            }
        }
    }
    //验证邮箱
    @Test
    public static void checkEmail(){
        Scanner sc=new Scanner(System.in);
        while (true) {
            System.out.println("请输入您的邮箱:");
            String email=sc.next();
            //校验手机号(正则表达式)
            if (!email.matches("\\w{1,30}@[a-zA-Z0-9]{2,20}(\\.[a-zA-Z0-9]{2,20}){1,2}")) {
                Assert.notNull(null,"邮箱不合法");
            }
        }
    }

}



你可能感兴趣的:(后端,java,java,正则表达式,开发语言)