1.为什么要使用正则表达式?
例如上一节中查找字符串中数字子串的问题,用算法则很费力气才做出来,但是用正则表达式很容易几行代码就搞定了,常见的注册信息、电话号码、QQ号码、邮箱的识别等等使用正则表达式都是很容易的事情。可以简化代码量和工作量。
2.正则表达式常见的两种写法
var re = /<[^>]+>/g;//非正式写法
var re = new RegExp('\\b');//正式写法
3.正则表达式中的几个规则?
a.匹配方法
/s 空格
/S 非空格
/d 数字
/D 非数字
/w 字符 (数字 字母和下划线)
/W 非字符
b.量词
* 和 ?为了说明这三个的意义先来看下量词的用法:
{3,9} 表示最少出现3次 不能超过9次
{6,} 表示最少出现6次
{6} 表示正好出现6次
了解了以上的含义现在来看:
* {0,}表示至少出现零次
+ {1,}表示至少出现1次
? {0,1}表示零次或者一次
3.正则表达式中最重要的几个方法?
有可能上面这两种规则看着比较难以理解,下面通过代码来解释同时介绍一些常用的方法:
match()方法书写方式:字符串.match(正则),匹配成功返回数组,失败返回null,如下代码实现的是上一节中查找字符串中数字子串的功能:
//要进行匹配的字符串
var str = 'aasdf987adedw321wbsd5ghjk659';
//实现查找字符串中数字子串的方法
function findNumStr(str){
/*
进行匹配的正则表达式,有上面的规则知道\d(d表示digit数字的英
文缩写)表示数字的意思,\d后面的+号表示数字可以出现至少一次,
也就是一次或者多次的意思,那么最后正则表达式最后面的g是什么意
思呢?是进行全局匹配的意思,在整个字符串中将符合正则表达式的
数字字串找出来。匹配成功过后就会结束整个过程,返回匹配结果。
*/
return str.match(/\d+/g);
}
alert(findNumStr(str));
那么有以上可以写出下面的简单正则表达式适应下:
var re = /\D/;//判定非数字
var re = /\S/;//非空格
在上面的几个正则表达式中反斜杠是什么意思呢?转义,如果没有反斜杠那么将变成对特定字母的匹配。