使用 构造函数 创建一个正则表达式
var rule = new RegExp("正则表达式","匹配模式");
var reg = new RegExp("ab","i");
正则表达式:
检查一个字符串时候里是否有ab
匹配模式:
"i": 不区分大小写
"g":全局匹配模式
.test("字符串") 检查这个字符串是否符合正则表达式
console.log(reg.test("vxcvewrAb"));//true
console.log(reg.test("vxcvewrAsb"));//false
使用 字面量 创建一个正则表达式
var rule = /正则表达式/匹配模式
var rule = /abc/i; 表示a&b&c
var rule = /a|b|c|d|e/i; 表示或 如果条件过多,书写会麻烦---->利用数组[abc],abc选一
var rule = /我[A-z]你/; //表示格式为:我?你
console.log(rule.test("我S你"));//true
var rule1 = /[^AB]/; 除了 A B AB都符合规则
console.log(rule1.test("ABSD"))true
正则表达式的String语法
/* .split("分隔符")
不指定全局模式,也会全部拆分
将s1以d拆分数组
*/
var res1 = s1.split("d");
console.log(res1[0] + "," + res1[1]);
//以s1中的字母为分割符,拆分成数组
var res2 = s1.split(/[A-z]/);
console.log(res2);
//检查想要值的索引search();
// 有则返回第一次出现的索引,无则为-1
// 开启全局匹配也只会返回一个索引
var s2 = "nihao abc,nihao amc,nihao apc";
console.log(s2.search(/a[bmp]c/));
/* 筛选出自己想要的值 match
默认模式下,找到想要的值其中一个,就不会继续寻找
开启全局匹配模式才能选择全部
*/
console.log(s1.match(/[a-z]/)); //返回了第一个字母
console.log(s1.match(/[a-z]/ig)); //返回了想要的匹配
/* 替换
.replace(需要去掉的内容,"填进去的内容")
不开启全局匹配,默认替换第一个
*/
console.log(s1.replace(/[A-z]/g,"@"));//1@2@3@4@5@6@7@8@9@10@11
正则表达式 转义字符
-{}:只对前面一个内容起作用
- /b{4}/ 只能出现4次b
- /(ab){4}/ 连续出现4次ab
- /b{1,3}/ 只能 连续出现1-3次b
- /b{4,}/ 至少连续出现4次b
- /b+/ 至少1个b
- /ab*c/ 有无b都行
-/ab?c/ 只有有1 或 0个b
//检查以上是否成立,需要b的左右有东西
rul = /ab{3}c/;
console.log(rul.test("abbbc"));//false
var rul = /ab?c/;
console.log(rul.test("abbc"));//false
rul = /ab{2,4}c/;
console.log(rul.test("abbbbbc"));//false
--------------------------------------------
-/^A/ 检查是否以A开头
-/B$/ 检查是否以B结尾
/ -/^a&/ a即开头又结尾 只能只有一个a
var rul2 = /^A/;
console.log(rul2.test("abc"))//false
rul2 = /^a$/;
console.log(rul2.test("aba"))//false
--------------------------------------------
/正则表达式的转义字符
- /./ 表示任意字符
- /\./ 表示.
-/\t/ 表示制表符
-/\bchild\b/ 检查单词边界 是否有单独的单词child
var a = /\./;
console.log(a.test("sadfa.s"));