[JavaScript学习]正则表达式-使用正则表达式的字符串对象方法 - Web前端
作者:98wpeu发布时间:2026-08-27分类:网页前端技术浏览:7
在上一篇文章中我们介绍了"正则表达式-创建正则表达式",本文将继续了解:“正则表达式-使用正则表达式的字符串对象方法”。

我们在程序中除了可以使用正则表达式对象的方法test()和exec()进行字符串测试和匹配之外,还可以使用string对象的4个方法来完成这些任务。在完成某些任务时,使用这些方法可能会更加简单有效。这4个方法如下表所示:
| 方法 | 功能 |
| match(regex) | 在一个数组中返回与正则表达式regex相匹配的子串 |
| Replace(regex,replacement) | 将字符串中的regex指定的子串替换为子串replacement |
| search(regex) | 查找正则表达式regex指定的模式在字符串中的开始位置 |
| split(regex) | 使用正则表达式regex分割字符串,并将分割的结果以数组的形式返回 |
match()方法
字符串对象的match()方法用于在字符串中搜索匹配的子串,并将匹配的结果在一个数组中返回。如果未找到匹配的子串,那么返回null。当在正则表达式中指定了g选项之后,match()方法进行全局搜索,并返回包含所有匹配子串的数组。match()方法的语法格式为:
matcharr = myString.match(regex);
其中,“myString”为要搜索的字符串,“regex”为指定的匹配模式的正则表达式。
下面是一个match()方法的例子。
var matchArr = new Array();
var mystring = "人在智慧上应当是明豁的,道德上应该是清白的,身体上应该是清洁的。";
var regex = /应[当该]/g;
var matchArr = mystring.match(regex);
document.write("匹配子串的个数为: "+matchArr.length+"<br>");
for (var i = 0; i < matchArr.length; i++) {
document.write("第"+i+"个匹配的子串为: "+matchArr[i]+ "<br>");
}执行上面的代码,我们将得到下面的结果:
匹配子串的个数为: 3 第0个匹配的子串为: 应当 第1个匹配的子串为: 应该 第2个匹配的子串为: 应该
上面的例子中,将match()方法的返回结果保存在数组matchArr中,然后输出了数组的长度。regex中的匹配模式使用了[]字符,这会在后面做详细介绍。通过循环我们可以看到数组中保存的所有与模式匹配的子串。
replace()方法
字符串对象的replace()方法用于搜索字符串,并用另一个字符串替换搜索到的字符串。在指定搜索模式时,可以将其指定为一个字符串,也可以指定为一个正则表达式。当将匹配模式指定为正则表达式时,正则表达式的i选项用于指定字符串在搜索过程中不区分大小写,g选项用于指定进行全局搜索,即替换匹配的所有子串。replace()方法还能够与分组元字符配合使用,这将在后面介绍。
replace()方法的语法格式为:
originalString = sourceString.replace(regex,value);
其中,originalString是替换完成后的字符串,sourceString是替换前的字符串,regex是指定匹配模式的正则表达式,value是替换后的内容。
下面是一个使用replace()方法的例子。
var oldString = "不论是狮子还是羚羊,都要奔跑;不论是贫穷还是富有,都要去奋斗。" var regex = /不论/g; var newString = oldString.replace(regex,"不管"); document.write(newString);
在上面的例子中,使用replace()方法来搜索oldString字符串,并将字符串中的“不论”修改为“不管”。得到的结果是:
不管是狮子还是羚羊,都要奔跑;不管是贫穷还是富有,都要去奋斗。
search()方法
search()方法在字符串中搜索指定的匹配模式,找到该模式时,返回模式出现的开始位置,这个位置从0开始计数。如果未找到匹配的模式,那么会返回-1。
对于简单的字符串搜索,字符串对象的indexof()方法就够用了,但是对于比较复杂的匹配搜索,我们应该使用search()方法,通过正则表达式来指定匹配模式。
search()方法的语法格式为:
var index = myString.search(regex);
其中,index保存了search()方法的返回值,该值表示所找到的匹配模式在字符串中出现的位置(从0开始计数)。如果没有找到,那么index的值为-1。
下面是一个使用search()方法的例子。
var myString = "人不能象走兽那样活着,应该追求知识和美德。";
var regex = /知识/g;
var index = myString.search(regex);
document.write("在字符串的第 "+index+" 个字符位置找到了匹配模式: "+regex);执行上面的代码得到的结果如下:
在字符串的第 15 个字符位置找到了匹配模式: /知识/g
从0开始计数,匹配模式“知识”位于字符串的第15个字符(一个汉字算一个字符)的位置。
split()方法
字符串对象的split()方法将字符串按指定的模式分割为多个子串,并保存在数组中返回。我们通常把分割字符串的模式字符称为分割符。在split()方法中,分割符使用正则表达式来指定,这样可以分割要求十分复杂的字符串。
split()方法的语法格式为:
splitArr = myString.split(regex);
其中splitArr保存split()方法返回值的数组,regex为正则表达式,这个表达式可以非常简单,也可以非常复杂。
下面是一个使用split()方法的例子。
var splitArr = new array();
var myString = "中国、美国、英国、法国、俄罗斯";
var regex = /、/;
splitArr = myString.split(regex);
for (var i = 0; i < splitArr.length; i++) {
document.write(splitArr[i]+ "<br>");
}在这个例子中,使用的正则表达式模式为一个顿号,用它来分割字符串myString,得到的结果如下:
中国 美国 英国 法国 俄罗斯
我们也可以使用更为复杂的正则表达式模式,例如下面的例子:
var splitArr = new Array();
var myString = "中国、美国;英国、法国 俄罗斯";
var regex = /[、; ]/;
splitArr = myString.split(regex);
for (var i = 0; i < splitArr.length; i++) {
document.write(splitArr[i]+ "<br>");
}在上面的代码中,使用的正则表达式模式为顿号、分号和空格中的任何一个来分割字符串myString,得到的结果和上例相同。
返回javascript教程主目录>>
相关推荐
- [JavaScript学习]JavaScript面向对象-基于原型链实现继承 - Web前端
- [JavaScript学习]正则表达式-常用正则表达式汇总(大全) - Web前端
- [JavaScript学习]正则表达式-什么是正则表达式? - Web前端
- [JavaScript学习]正则表达式-正则表达式的应用示例 - Web前端
- [JavaScript学习]JavaScript事件-DOM0级事件和DOM2级事件处理 - Web前端
- [JavaScript学习]JavaScript数据类型转换 - Web前端
- [JavaScript学习]正则表达式-正则表达式的元字符 - Web前端
- [JavaScript学习]JavaScript深入理解函数 - 函数的属性 - Web前端
- [JavaScript学习]JavaScript深入理解函数 - 函数的定义 - Web前端
- [JavaScript学习]JavaScript文档对象模型-DOM2级样式 - Web前端
- 网页前端技术排行
-
- 1[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 2分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 3jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 4【第六章】Foundation之按钮和下拉功能 - Web前端
- 5基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 6jQuery编写widget的一些技巧分享 - Web前端
- 7分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 8jQuery实现鼠标移到元素上动态提示消息框效果 - Web前端
- 9在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


