JavaScript之 正则对象

18 篇文章 2 订阅
13 篇文章 1 订阅

正则对象

正则基础

RegExp(正则表达式)

正则表达式(RegExp)是Regular Expression缩写,是用于查找符合某些规则的字符串的工具。
正则表达式是一个描述字符模式的对象,当检索某个文本时,可以使用一种模式来描述要检索的内容,RegExp 就是这种模式。

正则对象的创建

构造函数式   new RegExp(pattern,attribute)
						参数: pattern:匹配模式   attribute:匹配特征
例:var reg = new RegExp("a","g");
字面量式   /pattern/attribute
例:var reg1 = /a/i;

正则对象的属性

  • global:全局的,对应修饰符 g

  • ignoreCase:忽略大小写,对应修饰符 i

  • multiline:多行,对应修饰符m

  • lastIndex:下一次匹配的字符位置

    	var str = "hello world";
    	var reg3 = /l/g;
        console.log(reg3.exec(str));
        console.log(reg3.lastIndex);// 3
        console.log(reg3.exec(str));
        console.log(reg3.lastIndex);// 4
        console.log(reg3.exec(str));
        console.log(reg3.lastIndex);// 10
        console.log(reg3.exec(str));
        console.log(reg3.lastIndex);// 0
    

正则对象的方法

test():

测试方法,用于测试一个字符串是否符合正则表达式对象所指定的模式规则,返回true或false

	var str = "hello world";
    var reg1 = /o/;
    console.log(reg1.test(str)); // true
exec()

搜索方法,用于在字符串中查找符合正则表达式对象所指定的模式的子字符串,返回找到的结果,若找不到则返回null

	var str = "hello world";
    var reg1 = /d/;
    console.log(reg1.test(str)); // ["d", index: 10, input: "hello world", groups: undefined]

匹配模式pattern

  • 元字符:具有特殊含义的字符

    \s:匹配任何的空白字符
    \S:任何非空白字符
    \d:匹配一个数字字符,等价于[0-9]
    \D:除了数字之外的任何字符,等价于[^0-9]
    \w:匹配一个数字、下划线或字母字符,等价于[A-Za-z0-9_]
    \W:任何非单字字符,等价于[^a-zA-z0-9_]
    .:匹配除了换行符之外的任意字符

  • 量词:指定字符出现的次数

    {n}:匹配前一项n次
    {n,}:匹配前一项至少n次
    {n,m}:匹配前一项至少n次最多m次
    *:匹配前一项至少0次最多无数次,{0,}
    +:匹配前一项至少1次最多无数次,{1,}
    ?:匹配前一项最多1次,{0,1}

  • 特殊符号:具有特定含义的符号

    /…/:代表一个模式的开始和结束
    ^:匹配字符串的开始,即表示行的开始
    $:匹配字符串的结束,即表示行的结束
    [ ]:表示可匹配的列表
    ( ):用于分组
    |:表示或者

    [^ ]:在[ ]中的尖括号表示非

string对象的正则方法

match()

​ 检索返回一个字符串匹配正则表达式的的结果。

​ 返回存放匹配项的数组

	var str = "hello! world! how are you!"
    console.log(str.match(/w/)); 
    console.log(str.match(/o/g));  

在这里插入图片描述

search()

​ 执行正则表达式和 String 对象之间的一个搜索匹配。

​ 返回检索到的匹配项的索引

	var str = "hello! world! how are you!"
    console.log(str.search(/[^\w]/));            // 5
    console.log(str[str.search(/[^\w]/)]);        // !
replace(regexp|substr, newSubStr|function)

​ 用一个字符串或正则表达式替换指定字符串

​ 返回 被替换后的新字符串

	var str = "hello! world! how are you!"
    console.log(str.replace(/[^\w]/g,2));    //hello22world22how2are2you2
split()

​ 使用指定的分隔符字符串将一个String对象分割成子字符串数组,以一个指定的分割字串或正则表达式来决定每个拆分的位置。

​ 返回被拆分后的数组

	var str1 = "hello!world#how@are*you"
    console.log(str1.split(/[^\w]/));  // (5) ["hello", "world", "how", "are", "you"]

小练习

	var reg = /\d+/;        // 匹配数字至少一次
    var reg = /^\d+$/;      // 只能是数字,至少出现一次
    var reg = /^\d{3,}$/;   // 只能是数字,至少出现3次
    var reg = /^[abc]+$/;   // 只能是abc中的字母组成,至少一次
    var reg = /^[ab]+$/i;   // 只能是ab中的字母组成,不区分大小写,至少一次
    var reg = /^[^a-z]+$/i; // 只能是a-z之外的字符组成,不区分大小写,至少一次
    var reg = /^[^ab]+$/;   // 只能是ab之外的字符组成,至少一次
    var reg = /^[A|B]?$/;   // 只能出现一次A或者B或者空
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值