package com.sangedabuliu.www;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class UserReg {

/**

* 验证用户名,支持中英文(包括全角字符)、数字、下划线和减号 (全角及汉字算两位),长度为4-20位,中文按二位计数

* @author www.sangedabuliu.com

* @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";

String st = "A-dq_!!!!去符号标号!ノチセたのひちぬ!当然。!!..**半角";

System.out.println(validateUserName(str));

System.out.println(st.replaceAll("[\\pP&&[^-_]]", ""));

System.out.println(st.replaceAll("[\\w\\-一-龥A-Za-z]", ""));

}

}

java 校验姓名只能包含中英文_java代码验证用户名,支持中英文(包括全角字符)、数字、下划线和减号 (全角及汉字算两位),长度为4-20位,中文按二位计数...相关推荐

  1. java户名的正则表达式_java – 用于验证用户名的正则表达式

    我正在尝试创建一个正则表达式来根据这些条件验证用户名: >仅包含字母数字字符, 下划线和点. >下划线和点不能在最后或 用户名的开头(例如_username / username_ / . ...

  2. C语言口令,某一本地口令验证函数(c语言环境,x86_32指令集)包含如下关键代码:某用户的口令保存在字符数组origpassw...

    某一本地口令验证函数(c语言环境,x86_32指令集)包含如下关键代码:某用户的口令保存在字符数组origpassw 来源:信管网 2017年04月16日 [所有评论] 隐形人(cnitpm.com) ...

  3. 计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度

    计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度 public int Text_Length(string Text)       {             int len=0; fo ...

  4. java正则表达式 字母数字下划线_字母数字下划线常用正则表达式

    1.由数字.26个英文字母或者下划线组成的字符串: ^[0-9a-zA-Z_]{1,}$ 2.非负整数(正整数 + 0 ): ^/d+$ 3. 正整数: ^[0-9]*[1-9][0-9]*$ 4.非 ...

  5. java 数字 下划线_为什么要在Java SE 7的数字中使用下划线-在数字文字中使用下划线...

    java 数字 下划线 JDK 1.7发行版引入了几个有用的功能,尽管其中大多数都是语法糖,但使用该功能可以大大提高可读性和代码质量. 这样的功能之一是在数字文字中引入下划线 . 从Java 7开始, ...

  6. javascript/JS限制用户名只能输入 汉字字母和数字下划线

    验证用户名的一个例子: html: js: function checkUser() { var username = $("#username").val(); if (!use ...

  7. html用户名只包括字母下划线,javascript/JS限制用户名只能输入 汉字字母和数字下划线...

    验证用户名的一个例子: html: js: function checkUser() { var username = $("#username").val(); if (!use ...

  8. javascript/JS限制用户名只能输入字母和数字下划线

    javascript/JS限制用户名只能输入字母和数字下划线  2010-05-20 10:08  function checkreg(){ var msg = "对不起,输入错误\n&qu ...

  9. java 数字 下划线_数字文字中的下划线– Java 7功能

    java 数字 下划线 One of the Java 7 features is underscores in numeric literals. You can place underscores ...

最新文章

  1. 3.4.1 单表查询
  2. java 注解 demo_JAVA语言注解概念使用及Demo讲解
  3. RedisTemplate 使用 Redis 缓存
  4. JS----javascript中使用reverse()方法反转数组
  5. Qt Creator基本使用方法
  6. python 程序打包 vscode_使用VScode编写python程序并打包成.exe文件
  7. 定值保险计算举例_保险公司的“开门红”又要来了!理财险真的值得买吗?
  8. C#使用正则表达式检测数字 char 和韩文
  9. Android loopback(三)
  10. docker 启动相关 命令
  11. Android SDK环境变量配置(windows和Linux)
  12. SQL 笛卡尔积 学习与理解
  13. [转妙文]垃圾收集趣史
  14. LIS3DH运动检测调试过程
  15. 无盘服务器吃鸡卡,无盘新手必备知识
  16. 教你如何用Canvas绘制整身的哆啦A梦
  17. 计算机大学生论文参考文献,大学生计算机外文外文 大学生计算机论文参考文献哪里找...
  18. 2021年总结以及2022年的计划
  19. 广东电信公话200专用话机话务动态分析系统的构建
  20. 【JVM进阶之路】内存结构(一)

热门文章

  1. 美多商城之支付(评价订单商品)
  2. python轨迹追踪、全链路日志追踪trace_id实现
  3. celery任务:Tasks(一)
  4. 多项式加法C语言_只愿与一人十指紧扣_新浪博客
  5. 一文看懂95%置信区间
  6. 实战:使用 OpenCV 和 PyTesseract 对文档进行OCR
  7. 项目实践 | 行人跟踪与摔倒检测报警
  8. CNN架构复现实战 | 附视频和github项目
  9. 第十一篇:Discourse 话语/论述
  10. Win10环境Tensorflow-GPU13.1/JupyterNotebook的安装