1. 概述
1.1 正则表达式举例
-
匹配国内电话号码:^\d{3}-\d{8}|\d{4}-\d{7}$
-
匹配腾讯QQ号:^[1-9][0-9]{4,} $
-
匹配中国邮政编码:^\d{6} $
-
匹配身份证:^\d{15}|\d{18} $
-
匹配由数字和26个英文字母组成的字符串 ^[A-Za-z0-9]+$
-
匹配Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* $
-
匹配中文字符的正则表达式: ^[\u4e00-\u9fa5] $
1.2 什么是正则表达式
-
Regular Expression,在代码中常简写为regex
-
正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。
-
在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。
1.3 如何创建正则表达式 js
-
var reg=/china/;
-
var reg=new RegExp("china");
2 正则表达式的通配符号
/.../ :表示正则正则表达的声明
^ :匹配字符串开始
$ :匹配字符串结束
\s :任何空白字符 一个
\S :任非空白字符 一个
\w :匹配一个单词(字母、数字、下划线)[a-zA-Z0-9_] 或[A-z0-9_]
\W :匹配一个非单词
\d :匹配任何一个数字 [0-9]
\D :匹配一个非数字 [^0-9]
. :匹配除换行符之外的任意字符
{n} :匹配n次
{n,} :匹配至少n次
{n,m}:匹配至少n次,不超过m次
* :匹配0到多次 {0,}
- :匹配1到多次 {1,}
? :匹配0次或1次 {0,1}
|---------------------------------------------------------------------------------|----------------------|
| 表达式 | 描述 |
| ++[abc]++ | 查找方括号之间的任何字符。 |
| ++[^abc]++ | 查找任何不在方括号之间的字符。 |
| [0-9] | 查找任何从 0 至 9 的数字。 |
| [a-z] | 查找任何从小写 a 到小写 z 的字符。 |
| [A-Z] | 查找任何从大写 A 到大写 Z 的字符。 |
| [A-z] | 查找任何从大写 A 到小写 z 的字符。 |
| [adgk] | 查找给定集合内的任何字符。 |
| [^adgk] | 查找给定集合外的任何字符。 |
| (red|blue|green) | 查找任何指定的选项。 |
3 使用正则表达式ReqExp
|----------------------------------------------------------------------------|-----------------------------|------------|------------|
| 方法 | 描述 | FF | IE |
| ++compile++ | 编译正则表达式。 | 1 | 4 |
| ++exec++ | 检索字符串中指定的值。返回找到的值,并确定其位置。 | 1 | 4 |
| ++test++ | 检索字符串中指定的值。返回 true 或 false。 | 1 | 4 |
|---------------------------------------------------------------------|------------------|------------|------------|
| 方法 | 描述 | FF | IE |
| ++search++ | 检索与正则表达式相匹配的值。 | 1 | 4 |
| ++match++ | 找到一个或多个正则表达式的匹配。 | 1 | 4 |
| ++replace++ | 替换与正则表达式匹配的子串。 | 1 | 4 |
| ++split++ | 把字符串分割为字符串数组。 | 1 | 4 |
常用的正则表达式参照:在线正则表达式测试