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 学习之旅 (2)
Feb 05 Javascript
jQuery 源码分析笔记(4) Ready函数
Jun 02 Javascript
jQuery ajax 路由和过滤器使用说明
Aug 02 Javascript
改进版通过Json对象实现深复制的方法
Oct 24 Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
Dec 17 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
Sep 23 Javascript
jquery单选框radio绑定click事件实现方法
Jan 14 Javascript
jQuery实用技巧必备(上)
Nov 02 Javascript
jQuery中hover与mouseover和mouseout的区别分析
Dec 24 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
May 08 Javascript
vue开发拖拽进度条滑动组件
Sep 21 Javascript
jQuery实现带进度条的轮播图
Sep 13 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
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
PHP实现的mysql读写分离操作示例
2018/05/22 PHP
php实现统计IP数及在线人数的示例代码
2020/07/22 PHP
JQuery toggle使用分析
2009/11/16 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
web前端开发JQuery常用实例代码片段(50个)
2015/08/28 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
javascript中this指向详解
2016/04/23 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
JQuery之proxy实现绑定代理方法
2016/08/01 Javascript
ES2015 Symbol 一种绝不重复的值
2016/12/25 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
2017/05/22 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
2019/05/24 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
[52:22]EG vs VG Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
[01:13:59]LGD vs Mineski Supermajor 胜者组 BO3 第三场 6.5
2018/06/06 DOTA
学习python (1)
2006/10/31 Python
Python使用django获取用户IP地址的方法
2015/05/11 Python
python 文件查找及内容匹配方法
2018/10/25 Python
django fernet fields字段加密实践详解
2019/08/12 Python
python GUI计算器的实现
2020/10/09 Python
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
各营销点岗位职责范本
2014/03/05 职场文书
同学聚会主持词
2014/03/18 职场文书
五心教育心得体会
2014/09/04 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
MySQL中的布尔值,怎么存储false或true
2021/06/04 MySQL