via: http://lizhuangs.iteye.com/blog/2032698
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class UserReg {
/**
* 验证用户名,支持中英文(包括全角字符)、数字、下划线和减号 (全角及汉字算两位),长度为4-20位,中文按二位计数
*
* @param userName
* @return
*/
public static boolean validateUserName(String userName) {
String validateStr = "^[\\w\\--_[0-9]\u4e00-\u9fa5\uFF21-\uFF3A\uFF41-\uFF5A]+$";
boolean rs = false;
rs = matcher(validateStr, userName);
if (rs) {
int strLenth = getStrLength(userName);
if (strLenth < 4 || strLenth > 20) {
rs = false;
}
}
return rs;
}
/**
* 获取字符串的长度,对双字符(包括汉字)按两位计数
*
* @param value
* @return
*/
public static int getStrLength(String value) {
int valueLength = 0;
String chinese = "[\u0391-\uFFE5]";
for (int i = 0; i < value.length(); i++) {
String temp = value.substring(i, i + 1);
if (temp.matches(chinese)) {
valueLength += 2;
} else {
valueLength += 1;
}
}
return valueLength;
}
private static boolean matcher(String reg, String string) {
boolean tem = false;
Pattern pattern = Pattern.compile(reg);
Matcher matcher = pattern.matcher(string);
tem = matcher.matches();
return tem;
}
public static void main(String[] args) {
String str = "0-_f9zd中22最代码zuidaima.com";
String st = "A-dq_!!!!去符号标号!ノチセたのひちぬ!当然。!!..**半角最代码zuidaima.com";
System.out.println(validateUserName(str));
System.out.println(st.replaceAll("[\\pP&&[^-_]]", ""));
System.out.println(st.replaceAll("[\\w\\-一-龥A-Za-z]", ""));
}
}
相关推荐
Java使用正则表达式验证用户名和密码的方法非常实用,能够提高程序的稳定性和安全性,本文的示例代码也可以作为开发者学习和参考的材料。在实际开发中,验证用户名和密码的正确性是非常重要的,使用正则表达式可以...
根据给定的文件信息,我们可以总结出以下...综上所述,通过以上知识点可以看出,Java正则表达式在处理各种格式的数据验证时非常实用且灵活。开发者可以根据具体需求选择合适的正则表达式来提高代码的健壮性和安全性。
在提供的示例代码中,我们看到一个简单的登录页面,其中包含了一个名为 `AA` 的 JavaScript 函数,该函数用于验证用户输入的用户名是否符合上述正则表达式的规则。 ```javascript function AA() { var name = ...
从文件名来看,`RegisterFrameDemo.java`可能是展示用户注册界面并处理用户输入的类,而`RegexTools.java`可能是包含正则表达式验证功能的工具类。在实际应用中,`RegexTools`类可能会包含多个静态方法,分别对应...
1. 用户名验证:`/^[a-z0-9_-]{3,16}$/` - 这个正则表达式用于检查用户名是否合法,它只接受小写字母、数字、下划线和破折号,且长度在3到16个字符之间。 2. 密码验证:`/^[a-z0-9_-]{6,18}$/` - 类似于用户名,但...
以上就是关于"java 银行卡 验证 正则表达式使用"的知识点详解,包括了银行卡、手机号码、邮箱和URL的正则表达式验证。这些技巧在开发过程中非常实用,能够帮助我们确保用户输入的数据格式正确,从而提高程序的稳定性...
### Java常用正则表达式详解 #### 匹配腾讯QQ号 **正则表达式:** [1-9][0-9]{4,} **评注:** 腾讯QQ号从10000开始。 - **解析:** 此表达式确保了QQ号的第一个数字必须是非零数字(即1到9之间的任意一个),接着...
从代码示例中可以看到,Java正则表达式能够帮助我们灵活地对用户输入进行各种复杂的验证,从而保证注册数据的有效性和安全性。同时,作为开发者还需要注意,正则表达式可能会有性能问题,特别是在使用量词或者字符集...
本文主要介绍了Java正则表达式的基本概念和常用规则,包括整数、手机号码、空白符、电子邮件、邮政编码和用户名的验证等。通过上述示例,可以帮助开发者更好地理解和应用正则表达式,提高代码的效率和可读性。正则...
### Java正则表达式实例详解 #### 一、概述 正则表达式是一种强大的文本处理工具,能够帮助我们在字符串中查找、替换或提取特定模式的数据。在Java编程中,正则表达式的应用非常广泛,例如在表单验证、数据清洗等...
通过学习和熟练掌握这些Java正则表达式,开发者可以在程序中实现高效的数据验证,提升代码质量。同时,理解正则表达式的原理和技巧,还能帮助解决复杂的数据处理问题,提高编程效率。在实际项目中,可以根据需求组合...
正则表达式较为复杂,但基本思路是确保包含用户名、@符号、域名和顶级域(TLD)。例如,`^([\w]*)([@]?)([\w]*)([.]?)([\w]{1,3})$` 和 `^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-...
本主题主要关注使用正则表达式进行表单验证,涉及到JavaScript和JSP两种技术。正则表达式是一种强大的文本处理工具,能够有效地匹配、查找、替换和验证各种模式。 首先,我们来看表单验证的基本概念。表单是网页中...
根据提供的标题、描述、标签及部分内容,我们可以整理出关于Java正则表达式的多个知识点。以下是对这些内容的详细解析: ### Java正则表达式基础知识 #### 1. 基本概念 - **正则表达式**:一种用于匹配字符串模式...
验证用户名 ``` ^[a-zA-Z][a-zA-Z0-9_]{4,15}$ ``` - **应用场景**:用于验证一个合法的用户名格式。 - **解释**:该表达式规定了用户名以字母开头,允许包含字母、数字和下划线,长度在5到16个字符之间。 #####...
### JAVA正则表达式语法大全 #### 正则表达式简介 正则表达式是一种用于匹配字符串中字符组合的强大工具,在编程中广泛应用于文本搜索、替换等操作。Java中的正则表达式支持标准的正则表达式语法,并通过`java.util...
### 常用的正则表达式大全 在Web开发中,正则表达式是一种非常强大的文本处理工具,被广泛应用于各种应用场景中,比如表单验证、数据清洗、字符串匹配等。下面将详细介绍一系列常见的正则表达式及其应用场景。 ###...
根据提供的标题、描述以及部分内容,我们可以总结出一系列与正则表达式相关的知识点,这些知识点主要应用于Java、PHP等编程语言中。以下是对这些知识点的详细解释: ### 匹配中文字符 **正则表达式**: `[u4e00-u9fa...