正则表达式

   正则表达式对象语法参数有以下部分:    
      _________________________________________________________________ 
 
  参数部分            |     描述    
  -------------------------------------------------------------------  
  pattern            |   必需的。要使用的正则表达式模式,例如使用替换方法replace  
                          |   时,就是要替换的文本。
                          |  语法   1,用   "/"   字符分隔模式。   
                          |   语法      2,用引号将模式引起来。    
  -------------------------------------------------------------------  
  switch            |   可选项。语法  2   要用引号将   switch   引起来。可选的开  
                        |   关选项有:  
                        |       i   (忽略大小写)  
                        |       g   (全文查找出现的所有   pattern)  
                        |       gi   (全文查找、忽略大小写)  
  -------------------------------------------------------------------   


  语法1 当预先知道查找字符串时用
  语法 2 当查找字符串经常变动或不知道时用,比如由用户输入得到的字符串。  

在使用前   pattern   参数被编译为内部格式。
对语法   1   来说,pattern   在该脚本被装载时被编译。
对语法   2   来说,pattern   在使用前,或调用   compile   方法时被编译。  


正则表达式的语法表:

字符        |                                           描述    
  ----------------------------------------------------------------  
  \            |     标记下一个字符是特殊字符或文字。例如,"n"   和字符   "n"   匹配。  
               |     "\n"   则和换行字符匹配。序列   "\\"   和   "\"   匹配,而   "\("   则  
               |     和   "("   匹配。    
  ----------------------------------------------------------------  
  ^           |     匹配输入的开头。    
  ----------------------------------------------------------------  
  $           |     匹配输入的末尾。    
  ----------------------------------------------------------------  
  *         |     匹配前面的子表达式零或多次。例如,"zo*"   与   "z"   或   "zoo"   匹配。等价  于 {0,}    
  ----------------------------------------------------------------  
  +           |     匹配前面的子表达式一次或多次。例如,"zo+"   与   "zoo"   匹配,但和   "z"    
               |     不匹配。      
  ----------------------------------------------------------------  
  ?           |     匹配前一个字符零或一次。例如,"a?ve?"   和   "never"   中的   "ve"   匹  
               |     配。      
  -----------------------------------------------------------------  
  .            |   匹配除换行字符外的任何单个字符。      
  -----------------------------------------------------------------  
  (pat-     |     匹配   pattern   并记住该匹配。匹配上的子字符串,可以使用   Item    
  tern)     |     [0]...[n],来从生成的   Matches   集合中取回。要匹配圆括号字  
               |     符   (   ),则需使用   "\("   或   "\)"。    
  -----------------------------------------------------------------  
  x|y       |     匹配   x   或   y。例如,"z|food"   和   "z"   或   "food"   匹配。"(z|f)  
              |     ood"   匹配   "zoo"   或   "food"。      
  -----------------------------------------------------------------  
  {n}      |   n   是非负整数。共匹配   n   次。例如,"o{2}"   和   "Bob"   中的   "o"   不匹  
              |   配,但和   "foooood"   中的前两个   o   匹配。    
  -----------------------------------------------------------------  
  {n,}     |   n   是一个非负整数。至少匹配   n   次。例如,"o{2,}"   和   "Bob"   中  
              |     的   "o"   不匹配,但和   "foooood"   中的所有   o   匹配。"o{1,}"    
              |   与   "o+"   等效。"o{0,}"   和   "o*"   等效。    
  -----------------------------------------------------------------  
  {n,m}   |   m   和   n   是非负整数。至少匹配   n   次而至多匹配   m   次。例如,"o  
              |     {1,3}"   和   "fooooood"   中的前三个   o   匹配。"o{0,1}"   和   "o?"   等  
              |   效。    
  -----------------------------------------------------------------  
  [xyz]   |   字符集合。匹配括号内的任一字符。例如,"[abc]"   和   "plain"   中  
              |   的   "a"   匹配。    
  -----------------------------------------------------------------  
  [^xyz]   |   否定字符集合。匹配非括号内的任何字符。例如,"[^abc]"    
               |     和   "plain"   中的   "p"   匹配。      
  -----------------------------------------------------------------  
  [a-z]     |   字符范围。和指定范围内的任一字符匹配。例如,"[a-z]"   匹配   "a"    
               |   到   "z"范围内的任一小写的字母表字符。      
  -----------------------------------------------------------------  
  [^m-z]  |   否定字符范围。匹配不在指定范围内的任何字符。例如,"[m-z]"   匹配不  
              |   在   "m"   到   "z"范围内的任何字符。      
  -----------------------------------------------------------------  
  \b         |   匹配字的边界,也就是说,在字和空格之间的位置。例如,"er\b"    
              |   和   "never"   中的   "er"   匹配,但和   "verb"   中的   "er"   不匹配。      
  -----------------------------------------------------------------  
  \B         |   匹配非字边界。"ea*r\B"   和   "never   early"   中的   "ear"   匹配。      
  -----------------------------------------------------------------  
  \d         |   匹配数字字符。等价于   [0-9]。      
  -----------------------------------------------------------------  
  \D         |   匹配非数字字符。等价于   [^0-9]。      
  -----------------------------------------------------------------  
  \f         |   匹配换页字符。      
  -----------------------------------------------------------------  
  \n         |   匹配换行字符。      
  -----------------------------------------------------------------  
  \r         |   匹配回车符字符。      
  -----------------------------------------------------------------  
  \s         |匹配任何空白,包括空格、制表、换页等。与   "[   \f\n\r\t\v]"   等效。    
  -----------------------------------------------------------------  
  \S         |   匹配任何非空白字符。与   "[^   \f\n\r\t\v]"   等效。      
  -----------------------------------------------------------------  
  \t         |   匹配制表字符。      
  -----------------------------------------------------------------  
  \v         |   匹配垂直制表符。      
  -----------------------------------------------------------------  
  \w         |   匹配包括下划线在内的任何字字符。与   "[A-Za-z0-9_]"   等效。      
  -----------------------------------------------------------------  
  \W         |   匹配任何非字字符。与   "[^A-Za-z0-9_]"   等效。      
  -----------------------------------------------------------------  
  \num     |   匹配   num,其中   num   是一个正整数。返回记住的匹配的引用。例  
               |   如,"(.)\1"   匹配两个连续的同一字符。      
  -----------------------------------------------------------------  
  \n         |   匹配   n,其中   n   是八进制换码值。八进制换码值必须是   1、2、或   3   位  
              |   长。例如,"\11"   和   "\011"   都匹配制表字符。"\0011"   和   "\001"    
              |   &   "1"   是等效的。八进制换码值必须不超过   256。如果超过了,则只有  
              |   前两位组成表达式。允许在正则表达式中使用   ASCII   码。    
  -----------------------------------------------------------------  
  \xn       |   匹配   n,其中   n   是十六进制换码值。十六进制换码值必须正好是两位  
              |   长。例如,"\x41"   与   "A"   匹配。"\x041"   和   "\x04"   &   "1"   是等效  
              |   的。允许在正则表达式中使用   ASCII   码。  

常用正则表达式            
1。^\d+$  //匹配非负整数(正整数 + 0) 
2。^[0-9]*[1-9][0-9]*$  //匹配正整数 
3。^((-\d+)|(0+))$  //匹配非正整数(负整数 + 0) 
4。^-[0-9]*[1-9][0-9]*$  //匹配负整数 
5。^-?\d+$    //匹配整数 
6。^\d+(\.\d+)?$  //匹配非负浮点数(正浮点数 + 0) 
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+)?))$  //匹配非正浮点数(负浮点数 + 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。^[A-Za-z]+$  //匹配由26个英文字母组成的字符串 
12。^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串 
13。^[a-z]+$  //匹配由26个英文字母的小写组成的字符串 
14。^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串 
15。^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串 
16。^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$    //匹配email地址 
17。^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$  //匹配url 
18。匹配中文字符的正则表达式: [\u4e00-\u9fa5] 
19。匹配双字节字符(包括汉字在内):[^\x00-\xff]
20。应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;} 
21。匹配空行的正则表达式:\n[\s| ]*\r 
22。匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/ 
23。匹配首尾空格的正则表达式:(^\s*)|(\s*$)

正则表达式用例
  * 1、^\S+[a-z A-Z]$ 不能为空 不能有空格  只能是英文字母
  * 2、\S{6,}         不能为空 六位以上
  * 3、^\d+$          不能有空格 不能非数字
  * 4、(.*)(\.jpg|\.bmp)$ 只能是jpg和bmp格式
  * 5、^\d{4}\-\d{1,2}-\d{1,2}$ 只能是2004-10-22格式
  * 6、^0$            至少选一项
  * 7、^0{2,}$        至少选两项
  * 8、^[\s|\S]{20,}$ 不能为空 二十字以上
  * 9、^\+?[a-z0-9](([-+.]|[_]+)?[a-z0-9]+)*@([a-z0-9]+(\.|\-))+[a-z]{2,6}$邮件
  * 10、\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*([,;]\s*\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)* 输入多个地址用逗号或空格分隔邮件
  * 11、^(\([0-9]+\))?[0-9]{7,8}$电话号码7位或8位或前面有区号例如(022)87341628
  * 12、^[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(\.[a-z A-Z 0-9 _]+)+(\,[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(\.[a-z A-Z 0-9 _]+)+)*$
  *     只能是字母、数字、下划线;必须有@和.同时格式要规范 邮件
  * 13 ^\w+@\w+(\.\w+)+(\,\w+@\w+(\.\w+)+)*$上面表达式也可以写成这样子,更精练。
    14   ^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值