正则表达式(regular Expression)是一个描述字符模式的对象,其中字符模式由普通字符(如A~Z 、a~z、0~9)和特殊字符(元字符)组成
一、 正则表达式的运用范围:
1、验证字符串:验证给定的字符串或子字符串是否符合指定特征,例如,验证邮件地址、电话号码、手机号码等用户提交的数据是否合法
2、查找字符串:从指定的文本中查找符合特征的字符串
3、替换字符串:把给定的符合特征的字符串替换成其他字符串
4、提取字符串:从给定的字符串中提取符合指定特征的子字符串
二、定义正则表达式
javascript通过RegExp对象实现对正则表达式的支持
定义正则表达式的两种方法:构造方法(字符串匹配模式) && 直接量(正则表达式匹配模式)
1、 构造方法: 第一个参数为匹配模式,第二个参数为修饰性 字符 ,可选(g,i,m)
g:全局匹配字符(global的缩写),即指定的字符串范围内的执行所有的匹配查找
i:大小写不敏感字符(case-insensitive),即视字符串中字母大小写 为等同
m:多行匹配字符(multiline的缩写),即能够在多行字符串中执行操作
1.1 var r1=new RegExp("a")
1.2 var r2=new RegExp("a","gi")
var s="javascript"
var a1=s.match(r1);
var a2=s.match(r2);
alert(a1);//返回数组["a"],注:只返回字符串中第一个 匹配字符
alert(a2);//返回数组["a","a","A","A"]
首字符查找
var r=new RegExp("\\b\\w","gi");//用\转义,其中\b表示单词边界 \w表示任意ASCII字符
var s="javascript JAVA";
var a=s.match(r);
alert(a);// ["j","J"]
2、 直接量
首字符查找
var r=/\b\w/gi;
var s="javascript JAVA";
var a=s.match(r);
alert(a);// ["j","J"]
构造函数和直接量的区别:
1\ 构造函数接收的是字符串,其中 第一个参数 如果是特殊字符必须使用 双反斜杆 表示,如\\b\\w,以防止字符串中每个字符被EegExp()构造函数转义,第二个参数的修饰词也应该使用 引号 表示 "gi"
正则表达式直接量,每个字符都是按照正则表达式的规则来定义,普通字符和特殊字符都会被转义
2 构造函数可以动态创建正则,但直接量不可以
var r=new RegExp("a"+s+"b","g");//动态创建正则表达式
var r=/"a"+s+"b"/g; //错误的用法,因为对于直接量来说,“"”和“+”都视为普通的字符