Javascript中的正则表达式

Javascript中的正则表达式

、正则表达式

1、历史起源

1956,美国新泽西、底特律的两位神经生理方面的科学家通过数学符号的形式来描述神经系统网络模型。

 

.汤马森(UNIX之父)正则引入到UNIX引入编辑器QEDED、双管道命令grep

 

《精通正则表达式》的作者,把这种数学符号,编辑成书,并正式成为正则表达式。

 

2什么是正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个字符是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。

 

模式:正则表达式

某种模糊查询

 

select * from goods where title=’联想手机’;    精确查询

select * from goods where title like ‘%联想手机%’;  模糊查询

 

3应用场景

1)信息隐藏   *遥  135****999

2信息过滤   *** 河蟹   政府  zf   上海  sh

3信息采集   l356o998677

4信息检索   

5) 表单验证

 

、正则对象

1、创建正则对象

Javascript中,如果要使用正则表达式,请先创建正则对象

 

基本语法:

var 变量=/正则表达式/匹配模式;

 

2匹配模式

gglobal全局匹配

iignore忽略大小写

、正则表达式中的常用方法

6常用方法

RegExp类(正则对象):

test()判断字符串是否含有指定模式的字符,booltruefalse

exec()返回字符串中是否含有指定模式的字符

 

String(字符对象):

search()返回指定模式的字符在字符串出现的位置,默认从0开始

match():返回指定模式的字符串,返回数组类型

replace():通过指定模式字符进行字符串替换

split()通过指定模式字符实现对字符串的分割返回数组类型

、编写正则表达式

技巧正则编写三步走:

创建正则对象

1查什么

2查多少

3从哪查

1、正则表达式构成:

正则表达式是由普通字符(例如字符 a z)以及特殊字符(称为元字符)组成的文字模式。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

 

2、查什么(元字符——匹配符

字符匹配符用于匹配某个或某些字符

正则表达式通过一对方括号括起来的内容,我们称之为字符

l [a-z] 匹配a-z中的任一字符

l [A-Z] 匹配A-Z中的任一字符

l [0-9] 匹配0-9的任一数字 \d

l [0-9a-z] : 匹配0-9a-z中的任一字符

l [0-9a-zA-Z]匹配0-9a-zA-Z中的任一字符

下划线_

l [0-9a-zA-Z_]   相当于\w

l [abcd] : 匹配字符a或字符b或字符c或字符d

l [1234]匹配数字1数字2数字3数字4

正则表达式中的字符簇中,可以通过上档键^取反

l [^a-z] :匹配除a-z的任一字符

l [^0-9] 匹配除0-9的任一字符 \D

l [^abcd] 匹配字母abcd以外的任一字符

l \d :匹配一个数字字符 [0-9]

l \D :匹配一个非数字字符 [^0-9]

l \w :匹配包括下划线的任何单词字符 [0-9a-zA-Z_]

l \W :匹配任何非单词字符 [^\w]

l \s :匹配任何空白字符 空格、制表位等空白字符

l \S :匹配任何非空白字符 [^\s]

l .  :匹配除 "\n" 之外的任何单个字符

 

 

3查多少(字符——限定符)

限定符可以指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。

* 匹配前面的子表达式零次或多次  0多)

+ 匹配前面的子表达式一次或多次  1多)

? 匹配前面的子表达式零次或一次  01

{n} 匹配确定的 n    

{n,} 至少匹配n    {4,} 最少匹配4

{n,m} 最少匹配 n 次且最多匹配 m 次  {3,7}

|      或者的意思,例如x|y  匹配x或者y

 

 

4从哪查(元字符——定位符)

定位符可以将一个正则表达式固定在一行的开始或结束。也可以创建只在单词内或只在单词的开始或结尾处出现的正则表达式。

匹配11电话号

^ 上档键开始位置)

$ 结束位置

 

5特殊字符

转义符

正则表达式中,\ 用于匹配某些特殊字符

/  +  *  ?  ( )  []  {}  .  ^  $  \ 

五、用正则表达式举例:

  //用户名由6-18位的字母数字下划线组成,不能由数字开头

      var r_name=/^[a-z]\w{5,17}$/i

      //密码长度不能少于六位

      var r_pwd=/^\w{6,}$/

      //所有的通用邮箱地址

      var r_eamil=/^\w+@\w+(\.)\w+$/

      //匹配一个QQ邮箱地址

      //861745122@qq.com

      var r_qq_email=/^\d{5,}@qq(\.)com$/

      //匹配一个163的邮箱地址

      var r_163_email=/^\w+@163(\.)com$/

     //匹配一个后缀名可能是.com|.net|.cn|.edu

      var email=/^\w+@\w+(\.)com|net|cn|edu$/

     //要求输入有效的年龄段

     var r_age=/^\d{1,2}$/

     //if(age>=18&&age<=100)

     //验证手机号:11位  13 15 18开头

     var r_tel=/^1[3,5,8]\d{9}$/

   //验证身份证号  18位或者17位加一个X

    var r_s=/^\d{18}|\d{17}x$/i

   //验证中文

    var reg=/^[\u4e00-\u9fa5]{2,17}$/

 

 

 

posted @ 2016-09-05 11:44  wepe  阅读(173)  评论(0编辑  收藏  举报