正则表达式(Regular Expression)

正则表达式,是一个描述字符模式的对象

元字符

[ ] 表示匹配到括号里面的一项即可,例如[abc]可以匹配'a' || 'b' || ‘c’;
内部以 ^ 开头表示 取反,例如[^abc],可以匹配到任意非abc的字符;
. 可以匹配到任意字符,除了换行符(\n)行结束符(\r),等价于[^\n\r];
\d 可以匹配到任意一个数字,等价于[0-9];
\D 可以匹配到任意一个非数字字符,等价于[^0-9];
\w 可以匹配到任意单字字符,等价于[a-zA-Z0-9_]
\W 可以匹配到任意非单字字符,等价于[^a-zA-Z0-9_]
\s 表示任何空白字符串,等价于[‘’空格\t水平制表\n换行\r回车\f换页\v垂直制表]
\S 表示任何非空白字符串,等价于[^‘’空格\t水平制表\n换行\r回车\f换页\v垂直制表]
\b 匹配单词边界

test() :在字符串中查找符合正则的内容,若查找到返回true,反之返回false.

var regEap = /\bw/;
console.log(regEap.test("hello word"))//true

exec 查找并返回当前的匹配结果,并以数组的形式返回,未匹配到则返回null

var regExp = /a+/;//至少含有一个字符a
            console.log(regExp.exec("hello wordaaaa"));

search() :在字符串搜索符合正则的内容,搜索到就返回出现的位置(从0开始,如果匹配的不只是一个字母,那只会返回第一个字母的位置), 如果搜索失败就返回 -1

var str = 'abcdef';
var re = new RegExp('B','i'); 
alert( str.search(re) ); // 1

match() 在字符串中搜索复合规则的内容,搜索成功就返回内容,格式为数组,失败就返回null。

var str = "hello wordaaaa"
    console.log(str.match(regExp));

replace() :查找符合正则的字符串,就替换成对应的字符串。返回替换后的内容。

var str = "子圆,你今天有点亢奋啊,子圆";
            str = str.replace(/子圆/g,"志远");
            console.log(str);

定位符

^ 表示字符串的开始位置
$ 表示字符串的结尾位置

量词

+ 表示一个或多个,等价于{1,}
* 表示0到多个,等价于{0,}
? 表示0或者1个,等价于{0,1}
{m,n} 表示m到n个,包括m个和n个
{m} 表示m个
m, 表示大于等于m个

修饰符

i 忽略大小写
m 多行文本
g 全局
() 的用处,一个表示整体,李哥作用是表示反向引用的顺序

手机号码的正则匹配实例

var regExp   =  /^1[3-8]\d{9}$/
            var str    = ("17612909082");
            var res    = regExp.test(str)
            console.log(res)//true

你可能感兴趣的:(正则表达式(Regular Expression))