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

被折叠的 条评论
为什么被折叠?



