`
eric.zhang
  • 浏览: 127269 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一些常用的正则表达式

 
阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>email + jquery 正则表达式</title>
</head>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javaScript">
jQuery(function(){
$("#email").blur(function(){
  var txtValid = $(this).val();
   var re = /^[a-zA-Z]([a-zA-Z0-9]*[-_.]?[a-zA-Z0-9]+)+@([w-]+.)+[a-zA-Z]{2,}$/i;
  if(!re.test(txtValid)){
   alert('Error,check email');
   return;
  }
  else{
   alert('Good');
  }
  });
});
</script>
<body>
<input type="text" name="email" id="email">
</body>
</html>


1.非负整数         /^d+$/
     2.正整数           /^[0-9]*[1-9][0-9]*$/
     3.非正整数       /^((-d+)|(0+))$/
     4.负整数           /^-[0-9]*[1-9][0-9]*$/
     5.整数               /^-?d+$/
     6.非负浮点数     /^d+(.d+)?$/
     7.正浮点数       /^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$/
     8.非正浮点数     /^((-d+(.d+)?)|(0+(.0+)?))$/
     9.负浮点数         /^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$/
     10.浮点数         /^(-?d+)(.d+)?$/
     11.数字             /^d+(.{1}d+)?$/
     12.由26个英文字母组成的字符串                     /^[A-Za-z]+$/
     13.由26个英文字母的大写组成的字符串           /^[A-Z]+$/
     14.由26个英文字母的小写组成的字符串           /^[a-z]+$/
     15.由数字和26个英文字母组成的字符串           /^[A-Za-z0-9]+$/
     16.由数字、26个英文字母或者下划线组成的字符串             /^w+$/
     17.匹配所有单字节长度的字符组成的字符串                       /^[-�]+$/
     18.匹配所有双字节长度的字符组成的字符串                       /^[^-�]+$/
     19.字符串是否含有双字节字                                                 /[^-�]+/
     20.email地址             /^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$/
         或者                     /w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/
     21.url地址                 /^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$/
         或者                     /http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?/
     22.匹配中文字符的正则             /[u4e00-u9fa5]/
     23.匹配双字节字符(包括汉字在内)             /[^x00-xff]/
         应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
             String.prototype.len=function(){
                 return this.replace([^x00-xff]/g,"aa").length;
             }
     24.匹配空行的正则             /n[s| ]*r/
     25.匹配HTML标记的正则             /<(.*)>.*</1>|<(.*) />/
     26.匹配首尾空格的正则               /(^s*)|(s*$)/
         应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:
             String.prototype.trim = function(){
                 return this.replace(/(^s*)|(s*$)/g, "");
             }
     27.匹配IP地址的正则             /(d+).(d+).(d+).(d+)/
         应用:利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:
             function IP2V(ip){
                 re=/(d+).(d+).(d+).(d+)/g;
                 if(re.test(ip)){
                     return RegExp.$1*Math.pow(255,3))+
                     RegExp.$2*Math.pow(255,2))+
                     RegExp.$3*255+RegExp.$4*1;
                 }
                 else{
                     throw new Error("Not a valid IP address!");
                 }
             }
         其实直接用split函数来分解可能更简单,程序如下:
             var ip="10.100.20.168";
             ip=ip.split(".");
             alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1));
     28.去除字串中重复的字符的javascript程序
         var s="abacabefgeeii";
         var s1=s.replace(/(.).*1/g,"$1");
         var re=new RegExp("["+s1+"]","g");
         var s2=s.replace(re,"");
         alert(s1+s2);                     //结果为:abcefgi
     /*使用后向引用取出包括重复的字符,再以重复的字符建立第二个表达式,取到不重复的字符,
       两者串连。这个方法对于字符顺序有要求的字符串可能不适用。*/
     29.用正则表达式从URL地址中提取文件名的javascript程序
         s="http://www.9499.net/page1.htm";
         s=s.replace(/(.*/){0,}([^.]+).*/ig,"$2");
         alert(s);                             //结果为page1
     30.限制表单文本框输入内容
         只能输入中文:
             onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')"
                 onbeforepaste="clipboardData.setData('text',
                 clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))"
         只能输入全角字符:
             onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')"
                 onbeforepaste="clipboardData.setData('text',
                 clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))"
         只能输入数字:
             onkeyup="value=value.replace(/[^d]/g,'')"
                 onbeforepaste="clipboardData.setData('text',
                 clipboardData.getData('text').replace(/[^d]/g,''))"
         只能输入数字和英文:
             onkeyup="value=value.replace(/[W]/g,'')"
                 onbeforepaste="clipboardData.setData('text',
                 clipboardData.getData('text').replace(/[^d]/g,''))"
     31.验证文件名由字母,数字,下滑线组成                 /^((w+)(.{1})(w+))$/
     32.匹配日期(1900-1999)
         /^19d{2}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3([0|1])))$/
     33.匹配日期(2000-2999)
         /^20d{2}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3([0|1])))$/
     34.匹配日期时间
         /^(1|2d{3}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2][0-9])|(3([0|1]))))( (d{2}):(d{2}):(d{2}))?$/


//校验是否全由数字组成
var patrn=/^[0-9]{1,20}$/

//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;

//校验用户姓名:只能输入1-30个以字母开头的字串
var patrn=/^[a-zA-Z]{1,30}$/;

//校验密码:只能输入6-20个字母、数字、下划线
var patrn=/^(w){6,20}$/;

//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?(d){1,12})+$/;
var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/;

//校验手机号码:必须以数字开头,除数字外,可含有“-”
var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/;

//校验邮政编码
var patrn=/^[a-zA-Z0-9]{3,12}$/;

//校验搜索关键字
var patrn=/^[^`~!@#$%^&*()+=|\][]{}:;',.<>/?]{1}[^`~!@$%^&()+=|\] []{}:;',.<>?]{0,19}$/;
var patrn=/^[0-9.]{1,20}$/;

正则表达式
^\d+$  //非负整数(正整数 + 0)
^[0-9]*[1-9][0-9]*$  //正整数
^((-\d+)|(0+))$  //非正整数(负整数 + 0)
^-[0-9]*[1-9][0-9]*$  //负整数
^-?\d+$    //整数
^\d+(\.\d+)?$  //非负浮点数(正浮点数 + 0)
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$  //正浮点数
^((-\d+(\.\d+)?)|(0+(\.0+)?))$  //非正浮点数(负浮点数 + 0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //负浮点数
^(-?\d+)(\.\d+)?$  //浮点数
^[A-Za-z]+$  //由26个英文字母组成的字符串
^[A-Z]+$  //由26个英文字母的大写组成的字符串
^[a-z]+$  //由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //由数字和26个英文字母组成的字符串
^\w+$  //由数字、26个英文字母或者下划线组成的字符串
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$    //email地址
^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$  //url
^[A-Za-z0-9_]*$



网页验证的例子:
<SCRIPT language="javascript"><!--
         function validate(){
                 var frm = document.form1;
                 if ( frm.orgname.value=="" ){
                         alert("机构名称必须填写,请输入!");
                         frm.orgname.focus();
                         return false;
                 }
                 if ( frm.orgfunction.value=="" ){
                         alert("机构职能必须填写,请输入!");
                         frm.orgfunction.focus();
                         return false;
                 }
                 if ( frm.orgpostcode.value=="" ){...}
                 else{
                         var pattern=/^d...{6}$/;
                         if(pattern.test(frm.orgpostcode.value)){...}
                         else{
                             alert("输入的邮政编码不是合法的格式!");
                             frm.orgpostcode.focus();
                             return false;
                         }
                 }
                 if ( frm.orgphone.value=="" ){...}
                 else{
                         var str=frm.orgphone.value;
                         var reg=/(^[0-9]...{3,4}-[0-9]...{3,8}$)|(^[0-9]...{3,8}$)|(^([0-9]...{3,4})[0-9]...{3,8}$)|(^0...{0,1}13[0-9]...{9}$)/;
                         if (isNaN(str)){
                                 if(reg.test(str)==false){
                                         alert("电话号码输入有误,请重新输入!");
                                         frm.orgphone.value="";
                                         frm.orgphone.focus();
                                         return false;
                                 }
                         }
                         else if(str.length<6){
                                 alert("电话输入有误,请重新输入!");
                                 frm.orgphone.focus();
                                 return false;
                         }
                 }
                 if ( frm.orgfax.value=="" ){...}
                 else{
                         var str=frm.orgfax.value;
                         var reg=/(^[0-9]...{3,4}-[0-9]...{3,8}$)|(^[0-9]...{3,8}$)|(^([0-9]...{3,4})[0-9]...{3,8}$)|(^0...{0,1}13[0-9]...{9}$)/;
                         if (isNaN(str)){
                                 if(reg.test(str)==false){
                                         alert("传真输入有误,请重新输入!");
                                         frm.orgfax.value="";
                                         frm.orgfax.focus();
                                         return false;
                                 }
                         }
                         else if(str.length<6){
                                 alert("传真输入有误,请重新输入!");
                                 frm.orgfax.focus();
                                 return false;
                         }
                 }
                 if ( frm.orgemail.value=="" ){...}
                 else{
                         var pattern=/^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/;
                         if(pattern.test(frm.orgemail.value)){...}
                         else{
                                 alert("输入的电子邮箱不是合法的格式!");
                                 frm.orgemail.focus();
                                 return false;
                         }
                 }
                 if ( frm.orgurl.value=="" ){...}
                 else{
                         var pattern=new RegExp("((^http)|(^https)|(^ftp))://(w)+.(w)+");
                         if(pattern.test(frm.orgurl.value)){...}
                         else{
                                 alert("输入的URL不是合法的格式!");
                                 frm.orgurl.focus();
                                 return false;
                         }
                 }
         }
//--></SCRIPT>
分享到:
评论

相关推荐

    常用正则表达式汇总(文档).txt

    主要为大家分享了最全的常用正则表达式大全,包括校验数字、字符、一些特殊的需求等等,感兴趣的小伙伴们可以参考一下。 很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是...

    正则表达式大全 - 收集的最常用正则表达式

    以下是一些常见的正则表达式及其用途: 1. 匹配中文字符:`[u4e00-u9fa5]` - 这个正则表达式用于匹配所有中文字符,包括简体和繁体。它基于Unicode范围,u4e00到u9fa5涵盖了大部分常用汉字。 2. 匹配双字节字符:`...

    一些常用正则表达式常用

    ### 正则表达式知识点详解 #### 一、基本概念与元字符介绍 **正则表达式**是一种用于模式匹配的强大工具,在文本处理、搜索替换等场景中有着广泛的应用。正则表达式的元字符包括但不限于以下几种: 1. **`.`...

    正则表达式正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此

    #### 二、常用正则表达式集合 以下是一些常用的正则表达式,它们覆盖了多种应用场景,包括数字验证、字符匹配、邮箱格式验证等。 ##### 1. 数字匹配 - **整数匹配** - `^\d+$`:匹配任何非负整数。 - `^[0-9]*[1-...

    一些常用正则表达式电话号码、数字、字母

    根据给定的信息,本文将详细解释正则表达式的几种常见应用,包括匹配电话号码、纯数字、纯字母以及字母和数字组合的字符串等场景,并提供实际的正则表达式示例。 ### 一、匹配电话号码 电话号码的格式多样,常见的...

    常用正则表达式.rar

    本压缩包"常用正则表达式.rar"提供了一些常见的正则表达式示例,主要包括校验数字、字符以及满足特殊需求的表达式。 1. **校验数字的表达式** - 验证整数:`^\d+$`,这将匹配任何由一个或多个数字组成的字符串。 ...

    彗星正则表达式调试工具

    6. **常见正则表达式库**:集成了一些常用正则表达式模板,用户可以直接引用或作为参考,节省了编写时间。 7. **错误提示**:当输入的正则表达式有误时,工具会给出错误提示,帮助用户快速修正。 在实际工作中,...

    100个常用正则表达式

    以下是对一些常见的正则表达式的详细解释: 1. 匹配中文字符:`[u4e00-u9fa5]` 这个正则表达式用来匹配Unicode范围内的中文字符,其范围是从4e00到9fa5,涵盖了大部分常用汉字。 2. 匹配双字节字符:`[^x00-xff]`...

    常用正则表达式集合

    在这个“常用正则表达式集合”中,你可能会找到许多实用的模板,帮助你在处理字符串时提高效率。下面我们将深入探讨正则表达式的基本概念、语法以及一些常见用法。 1. **基本概念** - **模式匹配**:正则表达式是...

    最常用的一些正则表达式和验证正则表达式

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。在C#编程语言中,正则表达式被广泛应用于数据验证,如检查电子邮件地址的有效性或网址URL的格式。以下是对这些常见正则表达式及其在C#中...

    常用正则表达式生成软件 学习文档

    包含自动生成常用的正则表达式,如邮件地址、网址、ip、url、数字等等 还有正则表达式的学习帮助文档,让你好好学习正则表达式 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序...

    常用java正则表达式

    以下是一些常用的匹配次数符号: - `?`:表示匹配0次或1次。 - `*`:表示匹配0次或多次。 - `+`:表示匹配1次或多次。 - `{m}`:表示恰好匹配`m`次。 - `{m,n}`:表示至少匹配`m`次,最多匹配`n`次。 例如,要匹配...

    常用正则表达式大全

    以下是一些常见的正则表达式元字符、运算符及其用法的详细解释: 1. **特殊字符**:在正则表达式中,一些字符具有特殊的含义,如`\`用于转义特殊字符,`^`表示匹配字符串的开始,`$`表示匹配字符串的结束。 2. **...

    c++写的正则表达式验证工具

    同时,为了方便使用,工具可能还会提供一些常见的正则表达式模式预设,用户可以直接选择,而无需手动编写复杂的正则表达式。 综上所述,这个"C++写的正则表达式验证工具"利用了Boost库中的`boost::regex`,为C++...

    常用正则表达式PDF

    ### 常用正则表达式知识点解析 #### 一、正则表达式的定义与应用场景 正则表达式是一种强大的文本处理工具,它通过一种描述性的语言来匹配、查找、替换等操作一系列为了执行模式匹配而编写的字符组合。在实际开发...

    常用正则表达式(经验积累)

    ### 常用正则表达式 #### 1. 匹配中文字符 **正则表达式**: `[\u4e00-\u9fa5]` - **用途**: 用于匹配任何单个中文字符。 - **应用场景**: 在处理含有中文文本的数据时非常有用,例如检查用户输入是否包含中文字符等...

    易语言正则表达式匹配中文

    在易语言中,正则表达式是进行文本处理、数据提取和搜索的关键工具,尤其在处理中文字符时显得尤为重要。本文将深入探讨易语言中的正则表达式匹配中文的原理、方法以及应用。 正则表达式(Regular Expression)是一...

    RPA常用的正则表达式汇总

    以下是对一些常用正则表达式的详细说明: **一、数字验证** 1. **纯数字**:^[0-9]*$ - 匹配任何包含零或多个数字的字符串。 2. **n位数字**:^\d{n}$ - 匹配恰好n位数字的字符串。 3. **至少n位数字**:^\d{n,}$ ...

Global site tag (gtag.js) - Google Analytics