js之正则表达式

what ?

   

    在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。换句话说,正则表达式就是记录文本规则的代码。

    正则表达式由一些普通字符和一些元字符(metacharacters)组成。普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。如表一: 

   

表1.常用的元字符

.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束

how?

    一、正则表达式中的限定符(指定数量的代码)

   

*重复零次或更多次
+重复一次或更多次
?重复零次或一次
{n}重复n次
{n,}重复n次或更多次
{n,m}重复n到m次

     二、字符类的匹配

     字符类的匹配用[],例如:

     [aeiou]就匹配任何一个英文元音字母,[.?!]匹配标点符号(.或?或!);

     也可以轻松指定一个字符范围,如[0-9]代表的含意与\d就是完全一致的:一位数字。

     三、分支条件

     正则表达式里的分枝条件指的是有几种规则,如果满足其中任意一种规则都应该当成匹配,具体方法是用" | "把不同的规则分隔开。例如:

     \d{5}-\d{4}|\d{5} 表示5位数字,或用连字号间隔的9位数字(美国的邮政编码)

     四、分组

    用小括号来指定子表达式(也叫做分组),这样就可以对括号中的整体进行操作了。

     五、反义

    有时需要查找不属于某个能简单定义的字符类的字符。比如想查找除了数字以外,其它任意字符都行的情况,这时需要用到反义:

 

表3.常用的反义代码

\W匹配任意不是字母,数字,下划线,汉字的字符\S匹配任意不是空白符的字符\D匹配任意非数字的字符\B匹配不是单词开头或结束的位置[^x]匹配除了x以外的任意字符[^aeiou]匹配除了aeiou这几个字母以外的任意字符

     六、未完待续

               ...

   

     七、属性

      属性是在 / 符号之外说明的,例如:/ 字符 /g

      字符 含义 

i执行大小写不敏感的匹配

g执行一个全局的匹配,简而言之,就是找到所有的匹配,而不是在找到第一个之后就停止了

cookies:

1 正则表达式是大小写敏感的;

2 查找元字符本身,要用到转义字符" \ ";

3 使用分支条件时要注意各个条件的顺序,因为匹配分枝条件时,将会从左到右地测试每个条件,如果满足了某个分枝的话,就不会去再管其它的条件了;

  

相关推荐