正则表达式入门
正则表达式
一、定义
正则表达式是用于匹配字符串中字符组合的模式。
正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单。还常用于过滤掉页面内容中的一些敏感词(替换),或从字符串中获取我们想要的特定部分(提取)等 。
二、使用
在 JavaScript 中,可以通过两种方式创建一个正则表达式。
1.通过调用 RegExp 对象的构造函数创建
var 变量名 = new RegExp(/表达式/);
2.通过字面量创建
var 变量名 = /表达式/;
test() 正则对象方法,用于检测字符串是否符合该规则,该对象会返回 true 或 false
正则表达式.test(测试文本)
var rg = /abc/;
rg.test('abc');
三、特殊字符
1.边界符
边界符
|
说明
|
^
|
表示匹配行首文本(开始)
|
$
|
表示匹配末尾文本(结束)
|
2.字符类
方括号:[ ],是否包含括号内的字符
/[abc]/.test('andy') //"andy"中包含"a",所以返回true
/^[a-z]$/.test('c') // -表示范围,是否包含a到z内字母
/[a-z1-9]/.test('andy')//表示包含 a 到 z 的26个英文字母和 1 到 9 的数字都可以
/[^abc]/.test('andy')//方括号内部加上 ^ 表示取反。本该返回true,取反后返回false
3.量词符
量词
|
说明
|
*
|
0次或更多次 |
+
|
1次或更多次
|
?
|
0次或1次
|
{n}
|
n次
|
{n,}
|
n次或更多次
|
{n,m}
|
n次到m次
|
4.括号
1.大括号{ } 量词符. 里面表示重复次数
2.中括号[ ] 字符集合。匹配方括号中的任意字符.
3.小括号( ) 表示优先级
var reg = /^abc{3}$/;//它只是让c重复三次 abccc
var reg = /^[abc]$/;//匹配a 或 b 或c 都可以
var reg = /^(abc){3}$/;//它是让abc重复三次 abcabcabc
5.修饰符
修饰符用于执行区分大小写和全局匹配
-
i:忽略大小写
-
g:全局匹配
-
gi:全局忽略大小写匹配
6.简写模式
简写 |
说明
|
\d
|
[0-9],匹配数字
|
\D
|
[^0-9],非数字
|
\b
|
匹配一个词的边界
|
\B
|
非单词边界
|
\s
|
匹配空格
|
\S
|
非空个字符
|
/\bm/ ;//匹配“moon”中的‘m’;
/^\d+$/; //正整数
/^\d{n}$/; //n位数字
/(^"s*)|("s*$)/; //首尾是空格的字符
7.常用正则表达式
正则表达式
|
说明
|
^[A-Za-z]+$
|
英文字母组成的字符串
|
^[A-Z]+$
|
大写字母
|
^[a-z]+$
|
小写字母
|
^[A-Za-z0-9]+$
|
字母和数字
|
^\w+$
|
字母、数字、下划线
|
^(0?[1-9]|1[0-2])$
|
一年的12个月,匹配01,11,12等类似结果
|
^((0?[1-9])|((1|2)[0-9])|30|31)$
|
一个月31天,匹配01,1,12,22,30,31等类似结果
|
^-?\d+\.?\d{0,2}$
|
最多两位小数
|
实际应用,表单验证
var tel = /^1[3-9]\d{9}$/; // 手机号码的正则表达式
var qq = /^[1-9]\d{4,}$/; //QQ号码
var pwd = /^[a-zA-Z0-9_-]{6,16}$/;//密码框 6到16位(字母,数字,下划线,减号)
var name = /^\w{3,12}$/; //用户名
var mail = /^[\w\+\-]+(\.[\w\+\-]+)*@[a-z\d\-]+(\.[a-z\d\-]+)*\.([a-z]{2,4})$/i/; //邮箱
var id = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[A-Z])/;//身份证号
var chinese= /[\u4E00-\u9FA5]/;//包含中文