`
heavenslv
  • 浏览: 82385 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

常用正则表达式

阅读更多

1.快速入门

   判断邮件地址的正则表达式

 

function checkEmail(strMail) {
     var  re=/\w+@\w+\.\d+/;
     // strMail
     var testStr="####@126.com";

     if (testStr.match(re)) {
          alert("匹配!");
     } else {
          alert("不匹配!");
     }
}
 

2.正则表达式常用元字符介绍

   先看看 /\w+@\w+\.\w+/

   /   /     两个反斜杠之间的内容,就是正则表达式

   \w     表示包括下划线在内的所有字母,数字

   +       表示位数在一位以上

   \w+  合起来就是   包括下划线在内的字母,数字,并且位数在一位以上

   \.       转义字符,就是 "."

   @     当然,这就是@符号了

 

上面的正则表达式,意思是 :一个以上的字符 加上 @符号加上 一个以上的字符 加上 "."符号 加上一个以上的字符

其他常用元字符

*            0个或者多个

+           1个或者多个

?            0个或者1个

^            开始字符

$            结束字符

\d           数字

\w          包括下划线在内的字母,数字

{n,m}    n位到m位 ,比如   \d{2,8}   就是2位到8位数字

{n,}        n位以上

x|y         匹配x或者y   比如    a|b    ,那么a,或者b,都是可以的

[abc]     只能是a,b,c三个中的一个

[a-z]      只能是a到z之间的一个

 

3 . 容易忽略的问题

   题目:写正则表达式,判断格式   2007 四位数字

   答案一:/\d{4}/

   问题:如果输入 A2007B,那么还是符合答案一的正则表达式

   答案二:/^\d{4}$/

答案二,加上了开始元字符^,结束元字符$ ,现在输入A2008B,就不符号格式了

 

4 .常用正则表达式/匹配

匹配中文字符的正则表达式 : [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内) :[^\x00-\xff]

匹配空行的正则表达式 :\n[\s| ]*\r

匹配HTML标记的正则表达式 :/<(.*)>.*<\/\1>|<(.*) \/>/

匹配首尾空格的正则表达式 :(^\s*)|(\s*$)

匹配Email地址的正则表达式 :\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

匹配网址URL的正则表达式 :http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

用正则表达式限制只能输入中文 :onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/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,''))"

 

用正则表达式限制只能输入全角字符 : onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"

 

校验用户名:例如只能输入5-20个以字母开头、可带数字、“_”、“.”的字串

function isRegisterUserName(str) {
     var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
     
     if (!patrn.exec(str)) {
          return false;
     } else {
          return true;
     }
}

 

校验密码:例如只能输入6-20个字母、数字、下划线

function isPasswd(strpw) {
     var patrn=/^(\w){6,20}$/;

     if (!patrn.exec(strpw)) {
          return false;
     } else {
          return true;
     }
}

 

校验用户姓名:例如只能输入1-30个以字母开头的字串:

function isTrueName(str) {
     var patrn=/^[a-zA-Z]{1,30}$/;

     if (!patrn.exec(str)) {
          return false;
     } else {
          return true;
     }
}

 

校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”

function isTel(str) {
     //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;
     var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;

     if (!patrn.exec(str)) {
          return false
     } else {
          return true;
     }
}
 

校验手机号码:必须以数字开头,除数字外,可含有“-”

function isMobil(str) {
     var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
     
     if (!patrn.exec(str)) {
          return false;
     } else {
          return true;
     }
}

 

校验邮政编码

function isPostalCode(sc) {
     var patrn=/^[a-zA-Z0-9 ]{3,12}$/;

     if (!patrn.exec(sc)) {
          return false;
     } else {
          return true;
     }
}
 

用正则表达式从URL地址中提取文件名:

function getFileNameByUri(suri) {
     // suri
     suri="http://www.9499.net/page1.htm";
     
     suri = suri.replace(/(.*\/){0,}([^\.]+).*/ig,"$2");
     alert(suri);
}

 

去除字符串的前后空格:

String.prototype.trim = function() {
      return this.replace(/(^\s*)|(\s*$)/g, "");
} 

 

校验是否全由数字组成:

function isDigit(str) {
     var patrn=/^[0-9]{1,20}$/;

     if (!patrn.exec(str)) {
          return false;
     } else {
          return true;
     }
}

 

计算字符串的长度: (一个双字节字符长度计2,ASCII字符计1)

String.prototype.len=function() {
     return this.replace([^\x00-\xff]/g,"aa").length;
}

 

校验搜索关键字

function isSearch(str) {
     var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;'\,.<>?]{0,19}$/;

     if (!patrn.exec(str)) {
          return false;
     } else {
          return true;
     }
}

 

检验是不是IP

 

function isIP(sIp) {
     var patrn=/^[0-9.]{1,20}$/;

     if (!patrn.exec(sIp)) {
            return false;
     } else {
            return true;
     }
}

 

利用正则表达式分解和转换IP地址
下面是利用正则表达式匹配IP地址,并将IP地址转换成对应数值的Javascript程序:

function IP2V(ip) {
     re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正则表达式

     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))

 

本文经过自己整理,原文出处:http://blog.sina.com.cn/s/blog_4d4e3d0f01008dmu.html

1
2
分享到:
评论
2 楼 captmjc 2012-02-21  
你让αβγ情何以堪!!!
1 楼 longhua828 2012-02-21  
你这样写……

相关推荐

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

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

    常用正则表达式HTML,JAVA合集

    在这个“常用正则表达式HTML,JAVA合集”中,我们主要关注的是HTML和Java环境下的正则表达式应用。 1. **HTML中的正则表达式**: 在HTML中,正则表达式通常用于表单验证,例如输入字段(如邮箱、电话号码、手机号码...

    常用正则表达式.rar

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

    常用正则表达式大全.txt

    根据提供的文件信息,我们可以整理出一系列与正则表达式相关的知识点。这些知识点涵盖了从基本的数字验证到复杂的字符串匹配等多个方面。下面是详细的知识点总结: ### 基本概念 正则表达式是一种用于文本模式匹配...

    常用正则表达式集合

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

    JS常用正则表达式

    ### JS常用正则表达式知识点解析 #### 一、电子邮件地址验证 **功能说明:** 验证输入的字符串是否符合标准电子邮件地址格式。 **正则表达式:** ```javascript /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/ ``` **...

    常用正则表达式搜索

    ### 常用正则表达式搜索 #### 概述 正则表达式(Regular Expression,简称 REGEXP)是用于处理字符串的强大工具,在文本搜索、替换等操作中扮演着核心角色。Perl 作为一种广泛应用于文本处理的语言,其正则表达式...

    常用正则表达式PDF

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

    javascript常用正则表达式大全

    javascript常用正则表达式大全,基本覆盖基本需求的正则表达式

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

    正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和分析字符串。它通过预定义的模式来识别和操作字符串中的数据。以下是一些常见的正则表达式及其用途: 1. 匹配中文字符:`[u4e00-u9fa5]` - 这个正则...

    Java常用正则表达式.txt

    ### Java常用正则表达式详解 #### 匹配腾讯QQ号 **正则表达式:** [1-9][0-9]{4,} **评注:** 腾讯QQ号从10000开始。 - **解析:** 此表达式确保了QQ号的第一个数字必须是非零数字(即1到9之间的任意一个),接着...

    正则表达式-常用正则表达式大全

    ### 正则表达式-常用正则表达式大全 #### 一、正则表达式的概念与作用 正则表达式(Regular Expression),通常被简称为regex或regexp,是一种用于匹配字符串的强大工具。它广泛应用于文本搜索和替换操作,特别是...

    最全的常用正则表达式大全

    ### 正则表达式知识点详解 #### 一、校验数字的正则表达式 **1.1 数字** - **表达式:** `^[0-9]*$` - **解释:** 匹配任意数量(包括0个)的数字。 - **应用场景:** 用于验证输入是否全为数字。 **1.2 n位的数字**...

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

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

    常用正则表达式大全

    ### 正则表达式知识点详解 #### 一、匹配中文字符 **正则表达式**:`[u4e00-u9fa5]` **评注**:此表达式用于匹配中文字符,在处理含有中文内容的数据时非常有用。由于中文字符在Unicode中的范围是从`\u4e00`到`\u9...

    python之常用正则表达式.pdf

    ### Python之常用正则表达式知识点详解 #### 正则表达式基础概念 正则表达式是一种强大的文本处理工具,在Python编程中广泛应用于文本搜索、替换等操作。它能够帮助开发者快速定位、提取或者替换文本中的特定模式...

    java常用正则表达式(转)

    这篇博客“java常用正则表达式(转)”可能详细介绍了Java如何使用正则表达式进行各种操作。虽然没有具体的描述内容,但我们可以从标题和标签中推测,这篇博客可能涵盖了以下几个方面: 1. **正则表达式基础**: -...

Global site tag (gtag.js) - Google Analytics