正则表达式:2到8个中文字符4到16个英文字符数字下划线,可混合

本文介绍了一种使用正则表达式验证包含4到16个字节的字符串的方法,这些字符串可以由中文、英文字母、数字及下划线组成。通过两段示例代码详细展示了如何实现这一功能,包括输入字符串的有效性检查和长度验证。
求匹配 4到16个字节 的 中文,英文字母,数字,下划线 混合 的字符串的正则表达式.

(假设一个中文字符算两个字节,其它算一个字节)


匹配中文字符的正则表达式: [\u4e00-\u9fa5]


匹配双字节字符(包括汉字在内):[^\x00-\xff]


何必这么执着呢,分开来嘛

先判断输入是否合法,即满足中文、英文、数字、字母或者下划线

再判断长度合不合法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Check = function(str)   
{  
    var reg = /^[\u4e00-\u9fa5a-z\d_]{2,}$/gi;
    if (reg.test(str))
    {
        var len = str.replace(/[^\x00-\xff]/g,"aa").length;
        if (len < 4 || len > 16)
        {
            return false;
        }
 
        return true;
    }
     
    return false;
};

/**
 * 正则表达式:1到8个中文字符2到16个英文字符数字下划线,可混合
 */
public static boolean notBlankAndMatchRegexONE(String source) {
    if (StringUtils.isBlank(source)) {
        return false;
    }
    String reg = "^[\\u4e00-\\u9fa5a-zA-Z\\d_]{1,}$";
    String replaceReg = "[^\\x00-\\xff]";
    if (source.matches(reg))
    {
        int len = source.replaceAll(replaceReg,"aa").length();
        if (len < 2 || len > 16)
        {
            return false;
        }

        return true;
    }

    return false;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值