js中字符替换函数String.replace()使用技巧


Posted in Javascript onAugust 14, 2011

定义和用法

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

语法

stringObject.replace(regexp/substr,replacement)参数 描述
regexp/substr 必需。规定子字符串或要替换的模式的 RegExp 对象。

请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。
 
replacement 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

返回值

一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。

说明
字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

replacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。

字符 替换文本
$1、$2、...、$99 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。
$& 与 regexp 相匹配的子串。
$` 位于匹配子串左侧的文本。
$' 位于匹配子串右侧的文本。
$$ 直接量符号。

注意:ECMAScript v3 规定,replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。
实例
例子 1
在本例中,我们将使用 "3water.com" 替换字符串中的 "Microsoft":

<script type="text/javascript">
var str="Visit Microsoft!"
document.write(str.replace(/Microsoft/, "3water.com"))
</script>

输出:

Visit 3water.com!

例子 2
在本例中,我们将执行一次全局替换,每当 "Microsoft" 被找到,它就被替换为 "3water.com":

<script type="text/javascript">
var str="Welcome to Microsoft! "
str=str + "We are proud to announce that Microsoft has "
str=str + "one of the largest Web Developers sites in the world."
document.write(str.replace(/Microsoft/g, "3water.com"))
</script>

输出:

Welcome to 3water.com! We are proud to announce that 3water.com
has one of the largest Web Developers sites in the world.

例子 3
您可以使用本例提供的代码来确保匹配字符串大写字符的正确:

text = "javascript Tutorial";
text.replace(/javascript/i, "JavaScript");

例子 4
在本例中,我们将把 "Doe, John" 转换为 "John Doe" 的形式:

name = "Doe, John";
name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");

例子 5
在本例中,我们将把所有的花引号替换为直引号:

name = '"a", "b"';
name.replace(/"([^"]*)"/g, "'$1'");

例子 6
在本例中,我们将把字符串中所有单词的首字母都转换为大写:

name = 'aaa bbb ccc';
uw=name.replace(/\b\w+\b/g, function(word){
 return word.substring(0,1).toUpperCase()+word.substring(1);}
 );

String.replace( ) 简介
语法:
var strings = string.replace(regexp, replacement)

regexp :您要执行替换操作的正则表达式,如果传入的是一个字符串,那就会当作普通字符来处理,并且只会执行一次替换操作;如果是正则表达式,并且带有 global (g) 修饰符,则会替换所有出现的目标字符,否则,将只执行一次替换操作。
replacement :您要替换成的字符。
返回值是执行替换操作后的字符串。

11 String.replace( ) 的简单用法
var text = "javascript 非常强大 !";13 text.replace(/javascript/i, "JavaScript");14 // 返回:JavaScript 非常强大 !

String.replace( ) 替换所有出现的目标字符
var text= "javascript 非常强大 !JAVASCRIPT 是我最喜欢的一门语言 !";17 text.replace(/javascript/ig, "JavaScript");18 // 返回:JavaScript 非常强大 !JavaScript 是我最喜欢的一门语言 !

String.replace( ) 实现调换位置

var name= "Doe, John";
name.replace(/(\w+)\s*,\s*(\w+)/, "$2 $1");
// 返回:John Doe

String.replace( ) 实现将所有双引号包含的字符替换成中括号包含的字符
var text = '"JavaScript" 非常强大!';25 text.replace(/"([^"]*)"/g, "[$1]");26 // 返回:[JavaScript] 非常强大!

String.replace( ) 将所有字符首字母大写
var text = 'a journey of a thousand miles begins with single step.';29 text.replace(/\b\w+\b/g, function(word) {30 return word.substring(0,1).toUpperCase( ) +31 word.substring(1);32 });33 34 // 返回:A Journey Of A Thousand Miles Begins With Single Step.

Javascript 相关文章推荐
javascript实现tabs选项卡切换效果(扩展版)
Mar 19 Javascript
JavaScript实现MIPS乘法模拟的方法
Apr 17 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
Aug 18 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
May 30 Javascript
JS HTML5拖拽上传图片预览
Jul 18 Javascript
jQuery EasyUI常用数据验证汇总
Sep 18 Javascript
Angular 4依赖注入学习教程之简介(一)
Jun 04 Javascript
jQuery 利用ztree实现树形表格的实例代码
Sep 27 jQuery
Vue调试神器vue-devtools安装方法
Dec 12 Javascript
JS实现的汉字与Unicode码相互转化功能分析
May 25 Javascript
JAVA面试题 static关键字详解
Jul 16 Javascript
用原生JS实现爱奇艺首页导航栏代码实例
Sep 19 Javascript
js 通用javascript函数库整理
Aug 14 #Javascript
javascript中的数字与字符串相加实例分析
Aug 14 #Javascript
SyntaxHighlighter语法高亮插件使用说明
Aug 14 #Javascript
javascript高级学习笔记整理
Aug 14 #Javascript
jquery获得下拉框值的代码
Aug 13 #Javascript
Jquery中对数组的操作代码
Aug 12 #Javascript
基于jQuery的星级评分插件
Aug 12 #Javascript
You might like
ExtJS与PHP、MySQL实现存储的方法
2010/04/02 PHP
ThinkPHP关于session的操作方法汇总
2014/07/18 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
php判断当前操作系统类型
2015/10/28 PHP
Yii开启片段缓存的方法
2016/03/28 PHP
Ubuntu 16.04下安装PHP 7过程详解
2017/03/28 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
Python实现删除Android工程中的冗余字符串
2015/01/19 Python
python使用turtle库绘制时钟
2020/03/25 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
Python识别html主要文本框过程解析
2020/02/18 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
python Tornado框架的使用示例
2020/10/19 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
html5教程画矩形代码分享
2013/12/04 HTML / CSS
印度尼西亚最大和最全面的网络商城:Blibli.com
2017/10/04 全球购物
世界上最好的旅行夹克:BauBax
2018/12/23 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
2014春晚主持词
2014/03/25 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
关于清明节的演讲稿2015
2015/03/18 职场文书
婚礼嘉宾致辞
2015/07/28 职场文书
你会写请假条吗?
2019/06/26 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书
java项目构建Gradle的使用教程
2022/03/24 Java/Android
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL
Java中的Kotlin 内部类原理
2022/06/16 Java/Android