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 相关文章推荐
js停止输出代码
Jul 20 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
May 07 Javascript
鼠标移到导航当前位置的LI变色处于选中状态
Aug 23 Javascript
jQuery源码分析之Callbacks详解
Mar 13 Javascript
jQuery实现选项联动轮播效果【附实例】
Apr 19 Javascript
详解JavaScript中this关键字的用法
May 26 Javascript
Bootstrap开关(switch)控件学习笔记分享
May 30 Javascript
JS实现title标题栏文字不间断滚动显示效果
Sep 07 Javascript
laydate.js日期时间选择插件
Jan 04 Javascript
js实现悬浮窗效果(支持拖动)
Mar 09 Javascript
VSCode中如何利用d.ts文件进行js智能提示
Apr 13 Javascript
jQuery实现可以扩展的日历
Dec 01 jQuery
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
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
PHP操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
php动态生成函数示例
2014/03/21 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
PHP实现图片压缩
2020/09/09 PHP
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
2013/11/28 Javascript
Javascript 字符串模板的简单实现
2016/02/13 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
微信小程序 HTTPS报错整理常见问题及解决方案
2016/12/14 Javascript
AngularJS路由删除#符号解决的办法
2017/09/28 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
vue+elementUI实现表格关键字筛选高亮
2020/10/26 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
详细介绍Python函数中的默认参数
2015/03/30 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
浅谈python3中input输入的使用
2019/08/02 Python
Python requests模块cookie实例解析
2020/04/14 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
巴西服装和鞋子购物网站:Marisa
2018/10/25 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
Antonioli美国在线商店:时尚前卫奢华
2019/07/29 全球购物
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
上海奥佳笔试题面试题
2016/11/16 面试题
考博专家推荐信模板
2013/12/02 职场文书
管理专员自荐信
2014/01/26 职场文书