技术干货:JS正则表达式
一、概述
1、什么是正则表达式
正则表达式(Regular Expression)是一种用于描述字符串(文本)的规则模式。正则表达式由普通字符(例如字符a到 z)以及特殊字符(称为元字符)组成。在编写处理字符串的程序或网页时,经常会有查找符合某些规则的字符串的需求。正则表达式就是用于描述这些规则的工具。
![](https://img.haomeiwen.com/i13211021/4a791253e3378220.jpg)
2、正则表达式的作用
a)测试字符串的某个模式。例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式。这称为数据有效性验证
b)替换文本。可以在文档中使用一个正则表达式来标识特定文字,然后可以全部将其删除,或者替换为别的文字
c)根据模式匹配从字符串中提取一个子字符串。可以用来在文本或输入字段中查找特定文字
二、基本语法
a) 行定位符^ $
^匹配以开头
$匹配以结尾
b) 选择字符|
匹配一个字符串和[] 的区别是 []只能匹配一个字符
c) 连字符–
0-9 等同于 0123456789
d) 排除字符[^]
e) 限定符?* + {n,m}
?前面的字符出现0次或1次
*前面的字符出现了0次或多次
+前面的字符出现了1次或多次
{n}前面的字符出现了n次
{n,}前面的字符出现了>n次
{n,m}前面的字符出现了m>次数>n次
f) 点号字符.
点代指任意资格字符
g) 转义字符\
三、js正则表达式创建与使用
1、javascript 正则表达式的声明方式
a)正则表达式对象声明方式
var reg = new RegExp("a","gi");
b)正则表达式字面量的声明方式
var reg = /a/gi;
2、正则表达式在js中的应用
a) test检查指定的字符串是否存在
var data = "123123";
var reCat = /123/gi;
// g全局模式
// i不区分大小写
alert(reCat.test(data)); //true
b) exec 返回查询值
var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/i;
alert(reCat.exec(data)); //Cat
c)match 得到查询数组
var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/gi;
var arrMactches = data.match(reCat)
for (var i=0;i < arrMactches.length ; i++)
{
alert(arrMactches[i]); //Cat cat
}
d) search 返回搜索位置 类似于indexof
var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/gi;
alert(data.search(reCat)); //23
e) replace 替换字符 利用正则替换
var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/gi;
alert(data.replace(reCat,"libinqq"));