正则表达式实际上是一个对象
正则表达式用于判断用户输入的格式是否正确
计算机可以根据正则表达式,来检查字符串是否符合规则.或者把符合规则的部分提取出来
创建一个正则表达式对象
var reg = new RegExp("a");
console.log(reg);// /a/
正则表达式的方法
text()使用这个方法可以用来检查一个字符串是否符合正则表达式的规则。
如果符合返回true,否则返回flase
var str1 = "abcdef";
var str2 = "cccccc";
var result1 = reg.text(str1);
var result2 = reg.text(str2);
console.log(result1);//true
console.log(result2);//flase
//检查str1里面是否有reg里规定的字符。有返回true,否则返回flase
如果想要忽略大小写来判断,可以如下所示:
var reg = new RegExp("a","i"); //这里的i表示忽略大小写 则使用的时候,检验到a还是A都是true
//如果想要作用域整个字符串中的全部a,则使用全局匹配g
var reg = new RegExp("a","g");
使用字面量创建正则表达式
var 变量 = /正则表达式/匹配模式
var reg = new RegExp("a","i");
//以上的代码和下面的字面量创建正则表达式是相同的
reg = /a/i;
创建一个正则表达式,检查一个字符串中是否含有a或b
使用|表示或者的意思
reg = /a|b/;
创建一个正则表达式,检查一个字符串中是否含有字母
reg = /a|b|c|d|...../; //太长了
reg =[a-z];//表示a到z,且[]里面的数也是或的关系 任意的小写字母
//[A-Z]:任意的大写字母
//[A-z]:表示任意字母
//[0-9]:任意数字
创建一个字符串是否含有abc ,adc , aec
reg = /a[bde]c/;
//[^] 表示除了
reg = [^ab]; //表示除了ab
var str = abc;
console.log(reg.text(str)); //除了ab之外还有c,返回true
//如果str中只有a或者只有b,或者只有ab,则返回flase
字符串和正则相关的方法
split()函数
split()可以将一个字符串拆分为一个数组
方法中可以传递一个正则表达式作为参数,这样方法将会根据正则表达式去拆分字符串
这个方法即使不指定全局匹配,也会全都拆分
var str = "1a2b3c4d5e6f7";
var result = str.split(/[A-z]/); //拆分成 1,2,3,4,5,6,7
seach()函数
seach()可以搜索字符串中是否含有指定内容
如果搜索到指定内容,则会返回第一次出现的索引
如果没有搜索到则会返回-1
它可以接受一个正则表达式作为参数,会根据正则表达式去检索字符串。
var str = "hello abc hello acc hello adc";
var result = str.search(/a[bcd]c/); //查找字符串中有没有abc acc adc
match()函数
match()可以根据正则表达式,从一个字符串中符合条件的内容提取出来
默认情况下的match只会找第一个符合要求的内容,找到以后就停止检索
可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容
可以为一个正则表达式设置多个匹配模式,且顺序无所谓
match()会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果。
var str = "a1b2c3d4e5f6g";
result = str.match(/[A-z]/g); //全局匹配模式
console.log(result); //a,b,c,d,e,f,g 这里的result是以数组的形式返回
replace()函数
replace()替换 可以将字符串中的指令内容替换成新的内容
参数1 被替换的内容
参数2 新的内容
默认只会替换第一个
var str = "1a2b3c4d5e6f";
result = str.replace(/a-z/gi,"@"); //将所有的字母都变成@
console.log(result);//1@2@3@4@5@6@
正则表达式语句
量词 :通过量词可以设置一个内容出现的次数。
量词只对前边的一个词起作用。
var reg = /a{3}/; //正好出现3次 aaa
var reg = /ab{3}/; //abbb
var reg = /(ab){3}/; //ababab
var reg = /ab{1,3}/; //ab abb abbb b可以出现1~3次
var reg = /ab{1,}/; //ab abb .... b可以出现1~n次
var reg = /ab+c/; //+表示b至少一个,相当于{1,}
var reg = /ab*c/; //*表示0个或多个 相当于{0,}
var reg = /ab?c/; //?表示0个或者1个 相当于{0,1}
检查一个字符串的开头是否是a
reg = /^a/; //以a为开头 ^表示开头
reg = /[^a]/; //除了a
检查一个字符串的结尾是否是a
reg = /a$/; //结尾是否是a
如果在正则表达式中如果同时存在^和$,则表示只能是一个a
reg = /^a$/; //以a开头且以这个a为结尾,则只能是一个a
.(点)表示任意字符
如果只是想单纯表示 . 可以用\. 来表示.
var reg = /./ ; //这里表示的.可以是任意字符
var reg = /\./; //这里表示的.就只能是.这个符号 \在这里表示转义字符
注意:使用构造函数时,由于它的参数是一个字符串,而\是字符串的转义字符,如果要使用\,则应该要\\来使用
var reg = new RegExp("\\."); //解析出来等于/\./ 也就是表示一个.
var reg = new RegExp("\\\\"); //解析出来等于/\\/ 也就是表示\\
//特殊字符
// \w 表示任意字母和数字还有下划线 [A-z0-9_]
// \W 表示除了任意字母和数字还有下划线 [^A-z0-9_]
// \d 表示任意的数字 [0-9]
// \D 表示除了数字 [^0-9]
// \s 表示空格
// \S 表示除了空格
// \b 表示单词边界
// \B 表示除了单词边界