js正则表达式用法是什么?js正则表达式是什么意思?
- 懂视网
- 2021-12-30 17:06:31
js正则表达式的用法是什么呢?不知道的小伙伴来看看小编今天的分享吧!
1、正则表达式简介:
普通方式:var reg=/表达式/附加参数
附件参数:
g:代表可以进行全局匹配。
i:代表不区分大小写匹配。
m:代表可以进行多行匹配。
上面三个参数,可以任意组合,代表复合含义,当然也可以不加参数。
举例:
var reg=/a*b/;
var reg=/abc+f/g;
构造函数方式:var reg=new RegExp(“表达式”,”附加参数”);
举例:
var reg=new RegExp(“a*b”);
var reg=new RegExp(“abc+f”,”g”);
两者区别:
普通方式中的表达式必须是一个常量字符串,而构造函数中的表达式可以是常量字符串,也可以是一个js变量,例如根据用户的输入来作为表达式参数等等:var reg=new RegExp(document.forms[0].exprfiled.value,”g”);
2、正则表达式的操作:
表达式对象(RegExp)方法:
①exec(str),返回str中与表达式相匹配的第一个字符串,而且以数组的形式表现,当然如果表达式中含有捕捉用的小括号,则返回的数组中也可能含有()中的匹配字符串,例如:
var regx=//d+/;
var rs=regx.exec(“3432ddf53”);
返回的rs值为:{3432}
var regx2=new RegExp(“ab(/d+)c”);
var rs2=regx2.exec(“ab234c44”);
返回的rs值为:{ab234c,234}
另外,如果有多个合适的匹配,则第一次执行exec返回一个第一个匹配,此时继续执行exec,则依次返回第二个第三个匹配。例如:
var regx=/user/d/g;
var rs=regx.exec(“ddduser1dsfuser2dd”);
var rs1=regx.exec(“ddduser1dsfuser2dd”);
则rs的值为{user1},rs的值为{rs2},当然注意regx中的g参数是必须的,否则无论exec执行多少次,都返回第一个匹配。后面还有相关内容涉及到对此想象的解释。
②test(str),判断字符串str是否匹配表达式,返回一个布尔值。例如:
var regx=/user/d+/g;
var flag=regx.test(“user12dd”);
flag的值为true。
String对象方法:
①match(expr),返回与expr相匹配的一个字符串数组,如果没有加参数g,则返回第一个匹配,加入参数g则返回所有的匹配
例子:
var regx=/user/d/g;
var str=“user13userddduser345”;
var rs=str.match(regx);
rs的值为:{user1,user3}
②search(expr),返回字符串中与expr相匹配的第一个匹配的index值。
例子:
var regx=/user/d/g;
var str=“user13userddduser345”;
var rs=str.search(regx);
rs的值为:0
③replace(expr,str),将字符串中匹配expr的部分替换为str。另外在replace方法中,str中可以含有一种变量符号$,格式为$n,代表匹配中被记住的第n的匹配字符串(注意小括号可以记忆匹配)。
例子1:
var regx=/user/d/g;
var str=“user13userddduser345”;
var rs=str.replace(regx,”00”);
rs的值为:003userddd0045
例子2:
var regx=/u(se)r/d/g;
var str=“user13userddduser345”;
var rs=str.replace(regx,”$1”);
rs的值为:se3userdddse45
对于replace(expr,str)方法还要特别注意一点,如果expr是一个表达式对象则会进行全局替换(此时表达式必须附加参数g,否则也只是替换第一个匹配),如果expr是一个字符串对象,则只会替换第一个匹配的部分。
例如:
var regx=“user”
var str=“user13userddduser345”;
var rs=str.replace(regx,”00”);
rs的值为: 0013userddduser345
④split(expr),将字符串以匹配expr的部分做分割,返回一个数组,而且表达式是否附加参数g都没有关系,结果是一样的。
例子:
var regx=/user/d/g;
var str=“user13userddduser345”;
var rs=str.split(regx);
rs的值为:{3userddd,45}
以上就是小编今天的分享了,希望可以帮助到大家。
- 我国工业经济持续恢复发展产业结构优化 产2022-01-24
- 两部门发布《意见》:要求各部采取针对性举2022-01-24
- 邓长昌:尽快对我省科技特派员制度进行系统2022-01-24
- 黄月珍:推进综合改革打造台湾同胞“第二生2022-01-24
- 李家荣:优化创新生态掀起新一轮民营经济发2022-01-24
- 黄玲:全方位构建幸福养老服务体系在创造高2022-01-24
- 李金算:加快构建政府公共数据服务体系打造2022-01-24
- 住建部在全国推进住房公积金“跨省通办” 2022-01-24
- 数据显示:2021年全年城镇新增就业1269万人2022-01-24
- 云南安宁打破农民职业发展“天花板” 开展2022-01-24
- 2021年辽宁省粮食生产形势喜人 粮食总产量2022-01-24
- 春节期间辽宁对道路交通安全形势进行分析研2022-01-24
- 辽宁海城市确保全年签约亿元以上项目超过652022-01-24
- 辽宁盘锦公布12件民生实事 推进高质量发展2022-01-24
- “有梦 有为”周末青年志愿行动在李沧举行2022-01-24
- 听·见 | 动画师变身面塑传承人,这个802022-01-24
- 26名群众代表青岛占俩!高二学生成省政协旁2022-01-24
- 追踪丨全民接力,传来好消息!即墨失联3天2022-01-23
- 立案查处!青岛昌明置业有限公司森林公园项2022-01-23
- 半岛验房丨胶州亿阳金都馨城毛坯房墙面锈点2022-01-23
- “乐动市南”!逛街时与艺术不期而遇,“浮2022-01-23
- 人间烟火气!逛吃、选年货、置办新衣服……2022-01-23
- 浮山湾夜静悄悄2022-01-23
- 民俗大拜年,非遗专家亮绝活!2022年山东省2022-01-23
- 风雨无阻!崂山区实验学校小学部的足球队员2022-01-23
- 市北区探索服务赋能新路径 营造企业发展好2022-01-23
- 市北区聚焦中医药长远建设,产生“双驱动”2022-01-23
- 福建省一批民生项目建设取得显著成效2022-01-23
- 福建省十三届人大六次会议在福州开幕2022-01-23
- 去年福建全省地区生产总值48810亿 今年预2022-01-23