美文网首页
字母、数字、字符任意两种组合正则验证

字母、数字、字符任意两种组合正则验证

作者: 天天小志 | 来源:发表于2017-12-12 17:09 被阅读706次

最近朋友有个用户名验证,要求字母、数字、字符任意两种组合即可,让我帮写个正则验证,现在正则验证如下:

    /**
     * 判断是否匹配正则
     *
     * @param regex 正则表达式
     * @param input 要匹配的字符串
     * @return {@code true}: 匹配<br>{@code false}: 不匹配
     */
    public static boolean isMatch(final String regex, final CharSequence input) {
        return input != null && input.length() > 0 && Pattern.matches(regex, input);
    }

    public static boolean isTest(CharSequence input) {
        String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)[A-Za-z0-9\\W]{1,}$";
//        Pattern compile = Pattern.compile(regex);
//        Matcher matcher = compile.matcher(input.toString());
//        return matcher.find();
        return isMatch(regex, input);
    }
  • 测试
Log.i("@@@", "abc12/.,===" + RegexUtils.isTest("abc12/.,"));
Log.i("@@@", "abc12===" + RegexUtils.isTest("abc12"));
Log.i("@@@", "abc.,/===" + RegexUtils.isTest("abc.,/"));
Log.i("@@@", "123.,/===" + RegexUtils.isTest("123.,/"));
Log.i("@@@", "123.,asdasd/===" + RegexUtils.isTest("123.,asdasd/"));
Log.i("@@@", ",./123.,asdasd/===" + RegexUtils.isTest("123.,asdasd/"));
Log.i("@@@", "asdas,./123===" + RegexUtils.isTest("sdas,./123"));
Log.i("@@@", "1234adsfa===" + RegexUtils.isTest("1234adsfa"));
Log.i("@@@", "。,123,,sfdwe][0989//.';';[===" + RegexUtils.isTest("。,123,,sfdwe][0989//.';';["));
Log.i("@@@", "abc===" + RegexUtils.isTest("abc"));

  • 输出结果如下:
@@@: abc12/.,===true
@@@: abc12===true
@@@: abc.,/===true
@@@: 123.,/===true
@@@: 123.,asdasd/===true
@@@: ,./123.,asdasd/===true
@@@: asdas,./123===true
@@@: 1234adsfa===true
@@@: 。,123,,sfdwe][0989//.';';[===true
@@@: abc===false

  • 正则说明
String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)[A-Za-z0-9\\W]{1,}$";

^ 匹配一行的开头位置

(?![0-9]+$) 预测该位置后面不全是数字

(?![a-zA-Z]+$) 预测该位置后面不全是字母

[A-Za-z0-9\\W]{1,} 由1位数字、字母、符号中任意两种组成

$ 匹配行结尾位置

相关文章

  • 字母、数字、字符任意两种组合正则验证

    最近朋友有个用户名验证,要求字母、数字、字符任意两种组合即可,让我帮写个正则验证,现在正则验证如下: 测试 输出结...

  • 三级等保的iOS端正则验证规则

    //匹配中级以上强度密码正则表达式,要求数字、字母、特殊字符~@#$^任意两种组合以上 - (BOOL)pas...

  • 2018-10-08正则学习

    正则语法 数字描写 *字母image.png 汉字image.png 任意字符 任意字符是不能跨行的,只能在一行里...

  • python正则表达式

    python正则表达式========== \w可以匹配一个字母或数字 .可以匹配任意字符 *表示任意个字符(包括...

  • 正则表达式

    正则表达式 元字符代码说明.匹配除换行符以外的任意字符\w字母、数字、下划线或汉字\s匹配任意空白符\d匹配数字\...

  • day17正则表达式

    01-正则基本符号 import re 1.普通字符 2. .(匹配任意字符) 3.\w(匹配字母数字或者下划线...

  • 密码正则:必须是8-20位字母、数字或字符,至少包含两种!

    ####### 密码正则:必须是8-20位字母、数字或字符,至少包含两种!

  • 正则表达式

    . 匹配任意字符正则表示的是一个组合,配合任意一个非断行字符.转义\w 表示文字和大小写字母_\W 表示\w的反向...

  • 正则表达式

    一. 正则语法 1. 常用元字符 代码说明.匹配除换行符以外的任意字符\w匹配字母或数字或下划线\s匹配任意的空...

  • 二、数据库与数据表--2、SQLServer的数据类型

    (1)文本类型:字符数据包含任意字母、符号或数字字符的组合 char:固定长度的非Unicode字符数据,最大长度...

网友评论

      本文标题:字母、数字、字符任意两种组合正则验证

      本文链接:https://www.haomeiwen.com/subject/auunixtx.html