正则表达式中附加参数的用法_正则表达式从加入形参-程序员宅基地

技术标签: 前端  

原文地址:http://blog.csdn.net/dange_h/article/details/7695328
附件参数g的用法:
1)对于表达式对象的exec方法,不加入g,则只返回第一个匹配,无论执行多少次均是如此,如果加入g,则第一次执行也返回第一个匹配,再执行返回第二个匹配
function validate()
{
        var regx=/user/d/;
        var str="user18dsdfuser2dsfsduser3";
        var rs=regx.exec(str);
        var rs2=regx.exec(str);
        var rs3 = regx.exec(str);
        alert(rs+" "+rs2+" "+rs3);
}
<input name="" type="button" οnclick="validate();" />
结果为:user1 user1 user1

改为:var regx=/user/d/g;
结果为:user1 user2 user3
2)对于表达式对象的test方法,加入g于不加上g没有什么区别。
3)对于String对象的match方法,不加入g,也只是返回第一个匹配,一直执行match方法也总是返回第一个匹配,加入g,
       则一次返回所有的匹配(注意这与表达式对象的exec方法不同,对于exec而言,表达式即使加上了g,也不会一次返回所有的匹配)
4)对于String对象的replace方法,表达式不加入g,则只替换第一个匹配,如果加入g,则替换所有匹配。
function validate()
{
        var regx=/user/d/g;
        var str="user18dsdfuser2dsfsduser3";
        var rs=str.replace(regx,"teacher1");   
        alert(rs);
}
5)对于String对象的split方法,加上g与不加g是一样的
6)对于String对象的search方法,加不加g也是一样的

附加参数m的用法
附加参数m,表明可以进行多行匹配,但是这个只有当使用^和$模式时才会起作用,在其他的模式中,加不加入m都可以进行多行匹配(其实说多行的字符串也是一个普通字符串)
在页面上放一个TextArea文本域
function validate()
{
        var regx=/^user/d/g;
        var str=document.getElementById("txt1").value;
        var rs=str.match(regx);
        alert(rs);
}
在文本域里输入:
dsafasd
user1kkasjfas
gsdfasuser2
user3asdf
结果为null,因为只在第一行找user/d

改为:var regx=/^user/d/gm;
结果为:user1 user3
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/budaoweng0609/article/details/79145176

智能推荐

厨师优化算法求解单目标优化问题附matlab代码_Matlab科研辅导帮的博客-程序员宅基地

基于厨师的优化算法(Chef-Based Optimization Algorithm (CBOA)),是于2022年提出的一种基于人类行为的优化算法,该算法通过模拟厨师的烹饪行为来进行寻优,具有寻优能力强,收敛速度快等特点。元启发式算法在处理优化问题方面有着广泛的应用。在这项研究中,开发了一种新的元启发式算法,称为基于厨师的优化算法(CBOA)。CBOA设计的根本灵感来自于培训课程中学习烹饪技能的过程。对各个阶段的烹饪训练过程进行数学建模,目的是提高探索中的全局搜索能力和开发中的局部搜索能力。

2017-02-23 错误信息:未在本地计算机上注册“Microsoft.ACE.oledb.12.0”提供程序。-程序员宅基地

解决办法:去http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe下载。然后安装就行了。这个错误经常在进行Excel读取操作时遇到,这是由于默认安装的Office中缺少AccessDatabase引擎,关于Access

5年经验Java程序员面试27天,再不刷题就晚了!_不刷题能过面试吗-程序员宅基地

MySQL为何不选择平衡二叉树既然平衡二叉树解决了普通二叉树的问题,那么mysql为何不选择平衡二叉树作为索引呢?索引需要存储什么让我们想一想,如果我们要把索引存起来,那么应该存哪些信息呢,它应该存储三块信息:索引的值:就是表里面索引列对应的值。数据的磁盘地址(通过磁盘地址找到当前数据)或者直接存储整条数据。子节点的引用:我们需要从根节点往下走,所以需要知道左右子节点的地址。 根据这三点,可以有如下大致的一个简单的结构图:上图中数字表示的是索引的值,0x开头的表示磁盘地址,根_不刷题能过面试吗

Tornado + vue.js 前后端分离运行脚本-程序员宅基地

shell脚本部分:#!/bin/bash 主脚本(./cem-demo_publish_front)(./cem-demo_publish_backend)#!/bin/bash 后端脚本cd /data/www/cem-base-demo && git pull && ./restart_all.sh#!/bin/ba...

人生苦短我用python壁纸_人生苦短我用Python分分钟下载知乎美图给你看-程序员宅基地

为什么说”人生苦短,我用python“?为什么说人生苦短我用pythonQuestion1 Python是什么2 人们为什么用Python3 Python是脚本语言吗Python版Hello WorldExample1 Python2 Java本文不扯什么大道理,只是先介绍Python的背景,然后从实用的角度出发举一两个真实栗子。首先要想了解要一门语言的好坏,或者为什么招程序员喜欢(卧槽,原来程序..._人生苦短我用python的表情包

Javascript常见问题及解决(一)div失去焦点后隐藏_js元素失去焦点隐藏-程序员宅基地

描述:div失去焦点后隐藏根节点document/body添加点击监听事件,利用e.target属性判断其所有的祖先元素中是否包含该div元素及出发该下拉框内的元素,若不包含,则隐藏1)e的属性很多,总结如下属性名说明currentTarget冒泡前的当前事件的Dom对象,等同于this_js元素失去焦点隐藏

随便推点

OPC UA数据同步平台(未写完)_niopcserver支持opcua吗-程序员宅基地

软件主要功能:将PLC设备数据同步到数据库,本地和远程(需联网)均可。应用场景:工业大数据、数字化工厂、智能制造、物联网等。OPC UA版本使用要求:1、本软件使用LabVIEW2020SP1版本开发。如果LabVIEW版本低于2020,必须独立安装LabVIEW2020运行时才可以运行本程序。2、机器必须安装OPC Server类软件,NI OPC Servers或者KEPServerEX,无需安装到使用本程序的机器,保证在同一网络下即可。3、在OPC Server类软件中配置好OPC变量后,启_niopcserver支持opcua吗

DeepFaceLabOpenCLSSE-2019下载_deepfacelabopenclsse下载-程序员宅基地

DeepFaceLabOpenCLSSE-2019下载加群737695809_deepfacelabopenclsse下载

Java项目:房屋租赁管理系统(java+SSM+Layui+Maven+Mysql+Jsp_基于java的房屋租赁系统_AAlilong的博客-程序员宅基地

一、项目简述功能包括:房屋租赁管理系统是一款方便快捷,易操作的租房和各种物业收费的管理系统,该系统官网包含着用户和管理员分类登录,减少了为使用管理员系统的开支,用户分别支持手机网上或电脑网页快捷的查找可出租的房子,并在网上在线支付,并还包含有故障报修,缴租提醒,极大符合现代人们不想出门又快捷办事的需求,管理员也只需在网上提醒用户缴费即可,并有着查看用户信息,查看报障,租金信息,合同信息,日常提醒,添加删除或修改房屋的功能。二、项目运行环境配置:Jdk1.8 + Tomcat8.5 + mysql _基于java的房屋租赁系统

启动resin报错:Error runningnewResin: Can't find neither 'server' nor 'server-default' nor 'server-multi'-程序员宅基地

1. Error runningnewResin:Can't find neither 'server' nor 'server-default' nor 'server-multi' element因为resin.xml缺少server-default> httpaddress="*"port="8080"/> httpaddress="

Ardunio开发实例-TSL2561数字光传感器_tsl2561 arduino uno-程序员宅基地

数字光传感器数字光传感器可以将光强度转换为数字信号,与传统的模拟光传感器(Crowtail-光传感器)不同,本次使用基于I2C光数字转换器TSL2561数字光传感器模块。该数字模块由于具有双感光二极管(红外和全光谱)而具有可选的光谱范围。 可以在三种检测模式之间切换以获取读数。 它们是红外模式,全光谱和人类可见模式。当在人类可见模式下运行时,此传感器提供接近您的眼睛感觉的读数。1、硬件准备Arduino UNO 开发板一块杜邦线若干、数据线一条数据线一条TSL2561数字光传感器模块一个_tsl2561 arduino uno

ABP框架 - 多租户-程序员宅基地

文档目录本节内容:什么是多租户多部署 - 多数据库单部署 - 多数据库单部署 - 单数据库单部署 - 混数据库多部署 - 单/多/混 数据库ABP中的多租户启用多租户宿主与租户会话数据过滤IMustHaveTenant 接口IMayHaveTenant 接口补充提醒在宿主与租户间切换..._abp中多租户的iabpsession