常用正则表达式

正则表达式

1
2
3
4
5
6
7
8
9
10
11
12
// 邮箱正则表达式
var reg = /w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*/

// 电话
/^1[34578]d{9}$/

// 获取url正则表达式
var reg = new RegExp('(^|&)'+name+'=([^&]*)(&|$)')
var r = window.location.search.substr(1).match(reg);

// 匹配中文
[u4e00-u9fa5]

两种写法

1
2
3
var re = new RegExp(“a”);

var re = /a/;

常用符号

  • s : 空格
  • S : 非空格
  • d : 数字
  • D : 非数字
  • w : 字符 ( 字母 ,数字,下划线_ )
  • W : 非字符例子:是否有不是数字的字符
  • B : 非独立的部分
  • | : 或的意思

表达式

  • ():,小括号,叫做分组符
  • [] : 表示某个集合中的任意一个
  • {n,m}:至少出现n次,最多m次
  • {n,} :至少n次
  • * :任意次 相当于{0,}
  • ? :零次或一次 相当于{0,1}
  • + :一次或任意次相当于 {1,}
  • ^ : 表示开始位置
  • $ : 表示结束位置

常用方法

  1. test(): 测试是否符合正则表达式
1
2
3
4
5
6
7
var str = '374829348791';
var re = /D/; // D代表非数字
if( re.test(str) ){ // 返回true,代表在字符串中找到了非数字。
alert('不全是数字');
}else{
alert('全是数字');
}
  1. search(): 寻找字符串,找到返回下表,找不到返回-1
1
2
3
var str = 'abcdef';
var re = /B/i;
//var re = new RegExp('B','i');
  1. match() 在字符串中搜索复合规则的内容,搜索成功就返回内容,格式为数组,失败就返回null。
1
str.match(re)
  1. replace() :查找符合正则的字符串,就替换成对应的字符串。返回替换后的内容。
1
2
3
var str = '我爱北京天安门,天安门上太阳升。';
var re = /北京|天安门/g; // 找到北京 或者天安门 全局匹配
var str2 = str.replace(re,'*');