正则表达式详解

 RegExp对象实现,书写规则:  var xxx=new RegExp("匹配字符串"[,"附加条件"]);


字面量实现:  var xxx=/匹配字符串/[附加条件]





上面附加条件可以省略,附加条件有如下3个:


    i:忽略大小写


    g:全文查找


    m:多行查找





test()方法:


      用法:regexp对象实例.test(字符串)


      返回值:如果满足regexp对象实例中定的正则规则,返回true,否则返回false 





exec()方法:


       用法:regexp对象实例.exec(字符串)


       返回值:如果 exec 方法没有找到匹配,则它返回 null。如果它找到匹配,则 exec 方法返回一个数组,并且更新全局 RegExp 对象的属性,以反映匹配结果。数组的0元素包含了完整的匹配,而第1到n元素中包含的是匹配中出现的任意一个子匹配。这相当于没有设置全局标志 (g) 的 match 方法。 


如果为正则表达式设置了全局标志,exec 从以 lastIndex 的值指示的位置开始查找。如果没有设置全局标志,exec 忽略 lastIndex 的值,从字符串的起始位置开始搜索。





这里需要备注下:上面返回值这段话关于返回数组让我迷惑了好久,因为试验下来返回的都是一个长度的数组,也就是只有一个元素.查了网上很多资料都没有相关的介绍.翻开上次买的"javascript 高级程序设计"一书,在P168有介绍(所谓反向引用,以后介绍)


另外,关于"更新全局 RegExp 对象的属性"我是这样理解的:更新RegExp对象的index和lastIndex属性,在设置了全文匹配参数后可以试验,每次匹配从上一个lastIndex开始搜索.





 





正则表达式"^\\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_]*$"





基本语法 





在对正则表达式的功能和作用有了初步的了解之后,我们就来具体看一下正则表达式的语法格式。 正则表达式的形式一般如下:   





/love/  其中位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入“/”定界符之间即可。为了能够使用户更加灵活的定制模式内容,正则表达式提供了专门的“元字符”。所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。 较为常用的元字符包括: “+”, “*





”,以及 “?”。 





“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次。 





“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次。 





“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值