JavaScript Day9

JavaScript正则表达式的创建

1.字面量 /表达式/修饰符

 var reg1=/abc/g;//
匹配一个字符串中是否包含abc 
 g:global(全局)
    console.log(reg1);
    console.log(typeof reg1);//object

2.new关键字 构造函数

 var reg2=new 

RegExp("表达式","修饰符")

 var reg2=new RegExp("abc","g");
 console.log(reg2);

JavaScript正则表达式的方法

var reg1=/a/;
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
 if(!reg1.exec(str2)){
        console.log("没有找到匹配项")
    }
 test() 检索字符串中指定的值。返回true或false
    console.log(reg1.test(str));//true
    console.log(reg1.test(str2));//false

toString() 返回正则表达式的字符串

    console.log(reg1.toString());

JavaScript正则表达式的修饰符

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/i;
 var yzm2="ab3g";
 if(yzm.test(yzm2)){
 console.log("验证码正确")
    }else{
 console.log("验证码错误")
    }

g 全局匹配 global

    console.log(str1.replace(reg1,"H"));//Hbcabcabc
 var reg3=/a/gi;
    console.log(str1.replace(reg3,"H"));//HbcHbcHbc
    console.log(str2.replace(reg3,"H"));

m 多行匹配 multiline

 var str3="abc\nabcabc";
 var reg5=/a/gm;
 console.log(str3.replace(reg5,"M"));

JavaScript正则表达式的属性

var reg1=/a/igm;
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);
    }

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

[字符族] 查找每个范围内的字符

 var reg1=/acb/;
 console.log(reg1.test("abcdefg"));//false

[abc] 查找[]之间的任何字符

 var reg2=/[acb]/;
   console.log(reg2.test("a"));//true
   console.log(reg2.test("ab"));//true
   console.log(reg2.test("abdhehekeku"));//true

[^abc] 查找任何不在[]之间的字符。 排除

 var reg3=/[^acb]/;
   console.log(reg3.test("a"));//false
   console.log(reg3.test("acb"));//fasle
   console.log(reg3.test("gghkyunguym,jkyuh"));//true

[0-9] 查找任何从 0到9的数字

 var reg4=/[0-9]/;
 console.log(reg4.test("6789"));//true
 var reg5=/[0-5]/
 console.log(reg5.test("6789"));//false

[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])/;
 console.log(reg6.test("hello a"));//true
 console.log(reg7.test("hello a"));//false

JavaScript正则表达式的模式之元字符

拥有特殊含义的字符
. 查找单个字符,除了换行和行结束符以外的任意字符

 var reg1=/./;
    console.log(reg1.test("abcdefg"));//true
    console.log(reg1.test("122345678"));//true
    console.log(reg1.test("老韩"));//true
    console.log(reg1.test("\n"));//false

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

    var reg2=/\w/;
 // var reg2=/\W/;
    console.log(reg2.test("hagag0393838_"));//true
    console.log(reg2.test("老韩"));//false

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

var reg3=/\d/;
 var reg3=/\D/;
 console.log(reg3.test("1234567890"));//fasle

\s 查找空白字符。
\S 查找非空白字符。
\b 匹配单词边界。
\B 匹配非单词边界。
\0 查找 NULL 字符。
\n 查找换行符。
\f 查找换页符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。
\xxx 查找以八进制数 xxx 规定的字符。
\xdd 查找以十六进制数 dd 规定的字符。
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。

十六进制 0123456789ABCDEF

   console.log("一".charCodeAt(0));//19968   十进制 

中文 [\u4e00 -\u9fef]
4e00 0 0 14161616 4161616*16

 var reg6=/[\u4e00-\u9fef]/;
 console.log(reg6.test("韩"))

JavaScript正则表达式的模式之量词

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

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

 var reg2=/a{3,5}/;
    console.log(reg2.test("a"));
    console.log(reg2.test("aa"));
    console.log(reg2.test("aaa"));

n{X,} X 是一个正整数。前面的模式 n 连续出现至少 X 次时匹配。
例如,/a{2,}/ 不匹配 "candy" 中的 "a",但是匹配 "caandy" 和 "caaaaaaandy." 中所有的 "a"。
n+ 匹配任何包含至少一个 n 的字符串。 n{1,}
n* 匹配任何包含零个或多个 n 的字符串。 n{0,}
n? 匹配任何包含零个或一个 n 的字符串。 n{0,1}

 var regx=/a+/;
 console.log("aaaaa".match(regx));
 var regy=/a\+/;
 console.log(regy.test("a+"));

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

n$ 匹配任何结尾为 n 的字符串
var reg1 = /abc$/; //匹配以abc结尾的字符串
console.log(reg1.test("abcabc"));

^n 匹配任何开头为 n 的字符串
var reg2 = /^abc/;

匹配以abc开头的字符串
console.log(reg2.test("cabcabc"));

 var regy = /^([hH][tT]{2}[pP]:\/\/|[hH][tT]{2}[pP][sS]:\/\/)(([\w]+)\.)+([A-z])+$/

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

 var reg8=/ab(?=a)/gi;
 var reg9=/ab(!=a)/gi;
 console.log("abacabc".match(reg8));
 console.log("abcabc".match(reg9));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值