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