JS学习第九天

正则表达式

-正则表达式(Regular Expression)RegExp
-什么是正则表达式? 正则式
正则表达式是由一个字符序列形成的搜索模式。当你在文本中搜索数据时,你可以用搜索模式来描述你查询的内容
正则表达式可以是一个简单的字符,或者是一个更复杂的模式
正则表达式可以用于所有文本搜索和文本替换的操作

由一个字符序列形成的搜索模式,用来匹配

-正则表达式的模式:
1.正则表达式的范围
2.正则表达式的元字符
3.正则表达式的量词

正则表达式的创建

1.字面量 /表达式/修饰符
var reg1=/abc/g; // 匹配一个字符串中是否包含abc global(全局)对前局进行一个匹配
console.log(reg1);
console.log(typeof reg1); // object

2.new关键字 构造函数
// var reg2=new RegExp(“表达式”,“修饰符”)
var reg2=new RegExp(“abc”.“g”)
console.log(reg2);

正则表达式的属性和方法

var reg1=/abc/g;
//constructor 对创建正则表达式对象的函数的应用
console.log(reg1.constructor);
//prototype 向对象添加属性和方法 原型
console.log(RegExp.prototype);

var str=“abcabcabc”;
var str2=“ABCABCABC”;
方法
exec() 检索字符串中指定的值,返回找到的值,并确定其位置
console.log(reg1.exec(str));
console.log(reg1.exec()str2); // null

test() 检索字符串中指定的值 返回true或false
console.log(reg1.test(str)); //true
console.log(reg1.testc(str2));// false

toString() 返回正则表达式的字符串
console.log(reg1.toSingSt());

正则表达式的修饰符

//var reg1=/表达式/修饰符
//var reg2=new RegExp(“表达式”,“修饰符”)

var reg1=/a/;
var str1=“abcabcabc”;
var str2=“ABCABCABC”;

console.log(reg1.test(str1)); //true
console.log(reg1.test(str2)); // false

// i 忽略大小写 ignoreCase
var reg2=/a/i;
console.log(reg2.test(str2));// true
//验证码 忽略大小写 Ab3G
var yzm=/Ab3G/;
var yzm2=“ab3g”;
if(yzm.test(yzm2)){
console.log(‘验证码正确’);
}else{
console.log(“验证码错误”);
}

// g 全局匹配 global
console.log(str1.replace(reg1.“H”)); //Hbcaabcabc
var reg3-/a/g;
console.log(str1.replace(reg3.“H”)); //HbcHbcHbc
console.log(str2.replace(reg3.“H”));

// m 多行匹配 multiline
var str3=“abc \n abcabc”;
var reg5=/a/gm;
console.log(str3);
console.log(str3.replace(reg5,“M”));

正则表达式的属性

var reg1=/a/;
// constructor 对创建正则表达式对象的函数的应用
console.log(reg1.constructor);
//prototype 向对象添加属性和方法 原型==
console.log(RegExp.prototype);

// global 判断是否设置了"g"修饰符
// ignoreCase 判断是否设置了“i”修饰符
// multiline 判断是否设置了“m”修饰符

console.log(reg1.global);
console.log(reg1.ignoreCase);
console.log(reg1.multiline);

source 返回正则表达式的匹配模式 表达式
console.log(reg1);
console.log(reg1.source);

lastIndex 用于规定下次匹配的起始位置
var str=“abcabcabc”;
//console.log(reg1.test(str));
if (reg1.test(str)){
console.log(reg1.lastIndex);
}
while(reg1.test(str)){
console.log(reg1.lastIndex);
}

JS正则表达式的模式之范围

// [字符族] 查找每个范围内的字符
var reg1=/abc/g;
console.log(reg1.test(“abcdefg”));// true

// [abc] 查找[]之间的任何字符
var reg2=/[abc]/;
console.log(reg2.test(“a”)); //true
console.log(reg2.test(“ab”)); //true
console.log(reg2.test(“abjczdcs”)); //true

//[^abc] 查找任何不在[]之间的字符 排除
var reg3=/[^abc]/;
console.log(reg3.test(“a”)); // false
console.log(reg3.test(“acb”)); //false
console.log(reg3.test(“gdehbd”)); //true

[0-9] 查找任何从0到9的数字
var reg5=/st[0-9]/;
console.log(reg5.test(“1234567890”));

//[a-z]查找任何从小写a到小写z的字符
//[A-Z]查找任何从大写a到大写z的字符
//A-z]查找任何从大写a到小写z的字符

// (red|green|blue) 查找指定的选项或
var reg6=/(a|b|c)/;
var reg7=/abc/;
var reg8=/([a]|[b]|[c])/;

元字符

++**元字符是含有特殊含义的字符 \ **++

// . 查找单个字符 除了换行和行结束符以外的任意字符
var reg1=/./;
console.log(reg1.test(“abcd”));// true

// \w 查找数字、字母及下划线
// \W 查找非单词字符

var reg2=/\w/;
console.log(reg2.test(“hahasd38948”));// true
console.log(reg2.test(“哈哈”)); // false

// \d 查找数字
// \D 查找非数字字符

var reg3=/\d/;
console.log(reg2.test(“hahasd38948”));// true

正则表达式的模式之量词 限定符{}

// n{X} 匹配包含 X 个 n(连续)的序列的字符串
例如: /a{2}/ 不匹配"candy,"中的 “a”,但是匹配“caandy,”中的两个 “a”,且匹配“caaandy”中的前两个“a”

var reg1=/a{3}/;
console.log(reg1.test(“a”)); true
console.log(reg1.test(“aa”)); true
console.log(reg1.test(“aaab”)); true
console.log(reg1.test(“abaa”)); false
console.log(reg1.test(“aaaa”)); true
console.log(“aaaa”.replace(reg1.“A”)); Aaa

// n{X,Y} X和Y 为正整数。前面的模式 n 连续出现至少X次,至多Y次匹配
例如 /a{1,3}/ 不匹配 “cndy,” ,匹配 “candy,” 中的 “a”, “caandy,” 中的两个 “a”,匹配 "caaaaaandy"中的前三个a. 注意,当匹配"caaaaaandy"时,即使原始字符串拥有更多的a,匹配的也是 “aaa”

// n{X,} X是一个正整数。前面的模式 n 连续出现至少X次时匹配
例如 /a{2,}/ 不匹配 “candy” 中的 a ,但是匹配 “caandy” 和 "caaaaaandy"中的所有的a

n+ 匹配任何包含至少一个 n 的字符串 n{1,}
n* 匹配任何包含零个或多个 n 的字符串 n{0,}
n? 匹配任何包含零个或一个 n 的字符串 n{0,1}

JS正则表达式的模式之定位符

==n 匹 配 任 何 结 尾 为 n 的 字 符 = = v a r r e g 1 = / a b c 匹配任何结尾为 n 的字符== var reg1=/abc n==varreg1=/abc/; // 匹配以abc结尾的字符
console.log(reg1.test(“abcabc”));

^n 匹配任何开头为 n 的字符串
var reg2=/^abc/; // 匹配以abc为开头的字符串
console.log(reg2.test(“cabcabc”));

?=n 匹配任何其后紧接指定字符串 n 的字符串
?!n 匹配任何其后没有紧接指定字符串 n 的字符串

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值