热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:js正则表达式属性及方法的使用

篇首语:本文由编程笔记#小编为大家整理,主要介绍了js正则表达式属性及方法的使用相关的知识,希望对你有一定的参考价值。正则表达式直接量

篇首语:本文由编程笔记#小编为大家整理,主要介绍了js正则表达式属性及方法的使用相关的知识,希望对你有一定的参考价值。



正则表达式

直接量语法


/pattern/attributes


创建 RegExp 对象的语法:


new RegExp(pattern, attributes);


五大属性

技术分享

 

global:如果设置了new RegExp(‘s’,’g’),g(全局)被设置,所以global为true;

ignoreCase:同上,ignoreCase,对应的是i(大小写是否敏感);

lastIndex, var reg=/\\d/g;

           var r=reg.exec(‘a1b2c3‘);

            console.log(reg.lastIndex); //2

            r=reg.exec(‘a1b2c3‘);

            console.log(reg.lastIndex); //4

multiline:同上上:multiline对应m(多行匹配)

Source:var str = "Visit W3School.com.cn";

var patt1 = new RegExp("W3S","g");

document.write("The regular expression is: " + patt1.source);// W3S

 


方法

Var reg = /\\d/g;//正则表达式

Var str = ‘1c2v3r’;//你需要匹配的内容


RegExp 对象方法

RegExp对象方法就是  reg.fun(str)

 技术分享

 

 

Complie, 创建正则对象有两种方法:字面量和构造函数。compile基本等同于构造方法方式,且已被废弃。

Exec ,var result = reg.exec(str);它将返回一个数组

技术分享

 

注释:只能执行一次,返回的数组就是当前的匹配内容的信息

0,表示需要匹配的内容,index表示匹配的位置,input匹配的内容 ;

 

如果你想把全部的匹配出来:

 技术分享 

Result:

 技术分享

Test: 返回值为true或者false

reg.test(str);

 技术分享


String对象方法

Var reg = /\\d/;//正则表达式

Var str = ‘1c2v3r’;//你需要匹配的内容

String对象方法  str.fun(reg);与regExp对象方法相反

 技术分享

Search,search() 方法不执行全局匹配,它将忽略标志 g。它同时忽略 regexp 的 lastIndex 属性,并且总是从字符串的开始进行检索,这意味着它总是返回 stringObject 的第一个匹配的位置;它对i是支持的

它的返回值是检索的位置,若没有返回-1

Str.search(reg);//0;

Match, 返回数组,该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置,而是检索出来的内容数组形式展现

 技术分享

Result:

技术分享

注释:(多个结果的返回,要加g,否知只返回第一个内容,若没有匹配结果则返回null)

注意:对多个数字的匹配

 技术分享

若只是单个

 技术分享

 

 

Replace,一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

Replace(reg/str, 替换的内容)

 技术分享

如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

 

如果replace方法的第一个参数传入的是带分组的正则表达式,我们在第二个参数中可以使

用以下来获取相应的分组内容

 技术分享

 

技术分享

Result:@#1#@@#2#@@#3#@;


strObj.replace(regObj,function(){})

replace的fun方法

把replace方法的第二个参数传入一个function,这个function会在每次匹配替换的时候调用,算是个每次替换的回调函数,我们使用了回调函数的第一个参数,也就是匹配内容,其实回调函数一共有四个参数

第一个参数很简单,是匹配字符串

第二个参数是正则表达式分组内容,没有分组则没有该参数

第三个参数是匹配项在字符串中的index

第四个参数则是原字符串

技术分享

自己尝试一下输出结果

Split, 用于把一个字符串分割成字符串数组,返回数组

Str.split(reg/需要分割的标识,取返回数组的长度);其方法类似js数组方法的操作;

技术分享


推荐阅读
  • 1、创建高级对象使用构造函数来创建对象构造函数是一个函数,调用它来例示并初始化特殊类型的对象。可以使用new关键字来调用一个构造函数。下面给出了使用构造函数的新示例。 ... [详细]
  • python-去除字符串中特定字符一、去掉字符串两端字符:strip(,rstrip(,lstrip(s.strip(#删除两边(头尾空字符,默认是空字符s. ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • ExistsQueryeditExistsQueryeditExistsQueryeditExistsQueryeditReturnsdocumentsthathaveatleas ... [详细]
  • Givens1,s2,s3,findwhethers3isformedbytheinterleavingofs1ands2.Forexample,Given:s1aabcc ... [详细]
  • Vue生产环境调试的方法步骤
    开发环境下Vue会提供很多警告来帮你对付常见的错误与陷阱,而在生产环境下,这些警告语句却没有用,反而会增加应用的体积,下面这篇文章主要给大家介绍了关于Vue生产环境调试的方法步骤, ... [详细]
  • re正则表达式1.什么是正则?正则就是用一系列具有特殊含义的字符组成的规则,该规则用来描述具有某一特征的字符串。正则就是用来在一个大的字符串匹配出符合规则的子字符串2.为什么用正则 ... [详细]
  • 每日一道Leetcode剑指 Offer 37. 序列化二叉树 【层次遍历】
    每日一道Leetcode剑指 Offer 37. 序列化二叉树 【层次遍历】 ... [详细]
  • 配 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 为什么需要有应用层缓冲区?muduo网络库使用IO复用,并且文件描述符使用非阻塞模式,如果使用阻塞模式那么read、write就会阻塞在 ... [详细]
  • LwIP系列内存管理(堆内存)详解
    一、目的小型嵌入式系统中的内存资源(SRAM)一般都比较有限,LwIP的运行平台一般都是资源受限的MCU。为了能够更加高效的运行ÿ ... [详细]
  • 这篇文章主要介绍“大文本数据怎么导入导出到数据库”,在日常操作中,相信很多人在大文本数据怎么导入导出到数据库问题上存在疑惑,小编查阅了各 ... [详细]
  • 1、获取类身上的成员变量--class_copyIvarListif([badgeViewChildisKindOfClass:NSClassFromString(_UIBadg ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
author-avatar
zavier
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有