正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。
匹配中文字符的正则表达式: [\u4e00-\u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了
匹配双字节字符(包括汉字在内):[^\x00-\xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
匹配空白行的正则表达式:\n\s*\r
评注:可以用来删除空白行
匹配HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力
匹配首尾空白字符的正则表达式:^\s*|\s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
评注:表单验证时很实用
匹配网址URL的正则表达式:[a-zA-z]+://[^\s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用
匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7}
评注:匹配形式如 0511-4405222 或 021-87888822
匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始
匹配中国邮政编码:[1-9]\d{5}(?!\d)
评注:中国邮政编码为6位数字
匹配手机号码:
现在的手机号码增加了150,153,156,158,159,157,188,189
所以正则表达式如下: ^(13[0-9]|15[0|3|6|7|8|9]|18[8|9])\d{8}$
-------
正则验证手机号,忽略前面的0,支持130-139,150-159。忽略前面0之后判断它是11位的。
/^0*(13|15)\d{9}$/ ^0*
---------
手机号验证的正则为:
var reg =/^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/;
var reg =/^0{0,1}(13[0-9]|15[0-9])[0-9]{8}$/;
移动手机号的验证正则为:
var reg =/^0{0,1}(13[4-9]|15[7-9]|15[0-2]|18[7-8])[0-9]{8}$/;
=============================================
<input type="text" id="mobile" name="mobile" onblur="if (value=='') {value='请输入您的手机号'}" onfocus="if(value=='请输入您的手机号') {value=''}" value="请输入您的手机号"/>
<input type="button" name="china_mobile" value="校验是否是移动手机号" onclick="CheckChinaMobileID(document.getElementById('mobile').value)"/>
<input type="button" name="is_mobile" value="校验是否是手机号" onclick="CheckIsMobile(document.getElementById('mobile').value)"/> function CheckChinaMobileID(mobile){
if (mobile==""){
alert("请填写手机号码!");
return false;
}
if(isNaN(mobile)||(mobile.length!=11)){
alert("手机号码为11位数字!请正确填写!");
return false;
}
var reg =/^0{0,1}(13[4-9]|15[7-9]|15[0-2]|18[7-8])[0-9]{8}$/;
if(!reg.test(mobile))
{
alert("您的手机号码不是移动号码,请重新输入");
return false;
}
alert("大爷,这个真是移动的手机号");
return true;
}
function CheckIsMobile(mobile){
if (mobile==""){
alert("请填写手机号码!");
return false;
}
if(isNaN(mobile)||(mobile.length!=11)){
alert("手机号码为11位数字!请正确填写!");
return false;
}
var reg =/^0{0,1}(13[0-9]|15[0-9])[0-9]{8}$/;
if(!reg.test(mobile))
{
alert("您的手机号码不正确,请重新输入");
return false;
}
alert("这个真是手机号,是哪的我不知道");
return true;
}
=============================================
匹配身份证:\d{15}|\d{18}
评注:中国的身份证为15位或18位
匹配ip地址:\d+\.\d+\.\d+\.\d+
评注:提取ip地址时有用
匹配特定数字:
^[1-9]\d*$ //匹配正整数
^-[1-9]\d*$ //匹配负整数
^-?[1-9]\d*$ //匹配整数
^[1-9]\d*|0$ //匹配非负整数(正整数 + 0)
^-[1-9]\d*|0$ //匹配非正整数(负整数 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮点数
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配负浮点数
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮点数
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正
匹配特定字符串:
^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
评注:最基本也是最常用的一些表达式
---------------------------
正则表达式--验证手机号码:13[0-9]{9}
实现手机号前带86或是+86的情况:^((\+86)|(86))?(13)\d{9}$
电话号码与手机号码同时验证:(^(\d{3,4}-)?\d{7,8})$|(13[0-9]{9})
提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)
提取信息中的中国手机号码:(86)*0*13\d{9}
提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}
提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
-------------------------------
更严格的手机号码正则表达式写法
文章分类:Java编程
要更加准确的匹配手机号码只匹配11位数字是不够的,比如说就没有以144开始的号码段,
故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下:
移动:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
联通:130、131、132、152、155、156、185、186
电信:133、153、180、189、(1349卫通)
详见:[url=http://blog.myspace.cn/e/405268924.htm]http://blog.myspace.cn/e/405268924.htm[/url] 那么现在就可以正则匹配测试了,
Java代码
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ClassPathResource {
public static boolean isMobileNO(String mobiles){
Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");
Matcher m = p.matcher(mobiles);
System.out.println(m.matches()+"---");
return m.matches();
}
public static void main(String[] args) throws IOException {
System.out.println(ClassPathResource.isMobileNO("18616155153"));
}
}
分享到:
相关推荐
Java正则表达式应用总结
java正则表达式总结,java正则表达式入门的好材料
Java 正则表达式是 Java 语言中的一种强大的文本处理工具,能够对字符串进行复杂的匹配、提取和替换操作。本文将详细介绍 Java 正则表达式在过滤特殊字符方面的应用。 过滤特殊字符的正则表达式 在 Java 中,使用...
本资源文件是我自己总结的,其中包括5个类,这5个类的代码基本概括了java正则表达式替换String的多种情况,比如获取某个文件路径中盘符/后边的部分内容,提取"<title>XXXX</title>"中的文字XXXX,用正则表达式获取指定...
Java 正则表达式的总结和一些小例子 Java 正则表达式是 Java 编程语言中一个非常重要的组件,它可以用于文本显示、数据表示、查找键和许多其他目的。从 Java 1.4 开始,Java 核心 API 就引入了 java.util.regex ...
该文件总结了一部分正则表达式,在学习判断用户名和密码的过程中会有所帮助,仅供参考,如果有总结不对的地方,请联系作者修改
总结的js常用的正则表达式,如邮箱,手机号码,等等验证方法。
《正则指引》针对作者在开发中遇到的实际问题,以及其他开发人员咨询的问题,总结出一套使用正则表达式解题的办法,并通过具体的例子指导读者拆解、分析问题。全书分为三大部分:第一部分主要讲解正则表达式的基础...
包含所有正则表达式的内容,还有个人的总结与心得!!!
Java正则表达式,只需要看这个文档就可以掌握正则表达式,不需要在找资料了,希望对大家有意!
JAVA正则表达式语法大全总结,希望对大家有所帮助。。
本文档对JAVA的正则表达式从语法规则到实例应用,都作了归纳总结,并附有完整的测试代码,可以直接编译运行。
这是一篇关于java的正则表达式的语法总结,里面详细介绍了关于如何使用正则表达式,进而仔细看完之后就可以自己设置邮箱、电话号码、电子邮箱、iP地址等等
1、揭开正则表达式的神秘面纱 2、半小时精通正则表达式 3、表单验证Validator v1.0.chm 4、正则表达式.chm 5、DEELX 正则表达式 6、java正则表达式入门文档 ...12、正则表达式总结 13、30分钟入门教程 14、日期校验.doc
java正则表达式范例,有详细的注释,最基本的java正则表达式总结
正则表达式在java中的应用 与 java二、八、十、十六进制相互转化总结,与具体的示例,非常不错,欢迎下载使用。
精通正则表达式第三版 搜集于网络 前言..........I 第1章:正则表达式入门.... 1 解决实际问题... 2 作为编程语言的正则表达式... 4 以文件名做类比... 4 以语言做类比... 5 正则表达式的知识框架... 6 对于...
本文档对JAVA的正则表达式从语法规则到实例应用,都作了归纳总结,并附有完整的测试代码,可以直接编译运行。
正则表达式知识点总结 正则表达式是强大的字符串匹配模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。下面是正则表达式的基本概念和运用方法: 1. 正则...