【JS新手教程】replace替换一个字符串中所有的某单词
JS中的replace方法可以替换一个字符串中的单词。
语句的格式是: 需要改的字符串.replace(字符串或正则表达式,替换成的字符串)
如果第一个参数用字符串,默认是找到该字符串中的第一个匹配的字符串进行替换,剩下的不会替换。
如果是只想替换第一个匹配的内容,可以用字符串或者正则表达式都可以,效果一样,正则表达式的写法是,用斜杠包裹需要替换的内容。
如果想要替换整个字符串中所有的地方,正则表达式加g,g代表全局,所有的地方都会替换。
如果想要替换整个字符串中所有地方,且不区分大小写,加ig,i代表不区分大小写,g是全局。
由于英文是字母组成的,有的字母很长,里面包含需要替换的字母组合,就会造成错误替换,如下面例子的he,但是the,them等单词里 都包含he这两个字母组合,就会造成错误替换,正则表达式里加一对反斜杠b包裹需要的字母组合,就会忽略前后有字母的其他单词,英文中单个单词前后一般是空格或标点符号,用这个可以找单词。
正则表达式:用斜杠包裹所需要的内容和一些规则。
加g:全局,替换所有匹配的内容
加i:忽略大小写,替换所有忽略大小写后的匹配的内容
加ig:忽略大小写,且全局,替换所有匹配的内容
用/b内容/b,用反斜杠b包裹:找单词,去掉字母组合前后有其他单词的内容。
测试代码:结果在图示里。
window.onload=function(){
var stoy1=" them HE he the he He";
//两边有字母也算
//只替换第一个he
stoyRe1=stoy1.replace("he","she");//(字符串)
stoyRe2=stoy1.replace(/he/,"she");//(正则表达式)
//替换全部的he
stoyRe4=stoy1.replace(/he/g,"she");//替换字符串全部的he
stoyRe6=stoy1.replace(/he/ig,"she");//忽略大小写的,替换全部的he
//两边有字母不算,找到单词
stoyRe3=stoy1.replace(/\bhe\b/,"she");//替换找到的第一个he,找单词
stoyRe5=stoy1.replace(/\bhe\b/g,"she");//替换全部的he,找单词
stoyRe7=stoy1.replace(/\bhe\b/ig,"she");//i忽略大小写,全局,找单词
document.write("原字符串:"+stoy1+
"<br>\"he\"结果:"+stoyRe1+ //----"he"
"<br>/he/结果:"+stoyRe2+ //----/he/
"<br>/he/g结果:"+stoyRe4+ //----/he/g
"<br>/he/ig结果:"+stoyRe6+ //---/he/ig
"<br>/\\bhe\\b/结果:"+stoyRe3+ //-----/\bhe\b/
"<br>/\\bhe\\b/g结果:"+stoyRe5+ //-----/\bhe\b/g
"<br>/\\bhe\\b/ig结果:"+stoyRe7); //-----/\bhe\b/ig
}
图示:

如下,做了个测试例子,是在文本框中输入一段内容,然后替换里面的部分单词,再重新赋值给文本框。
在百度上搜了一篇小英文故事,是男第三人称描述的,用替换内容的方法,替换成了女第三人称,可以点击链接一键转换,比人工查找替换要快捷。
测试用的小故事放到JS的注释里了,复制到文本框里,点击链接可转换。
前面的测试后面的变量没有加var,这里是直接对一个字符串进行多次替换,然后再把变量赋值给原来的文本框。
这里面有点小问题,故事里第三人称的不只是猴子,还有大象,大象也用第三人称描述,所以也被替换成了女的第三人称,这个是无法区分的,具体he指代的是猴子还是大象,程序无法区分,只是把所有的he给替换掉了。
测试代码:
图示:
替换:
he----she
He----He
his---her
him---her
测试代码:
<body>
输入男第三人称的故事:<br>
<textarea id="t2" cols=100 rows=10></textarea>
<br>
<a href="javascript:Re()">点击转成女第三人称</a>
<script>
function Re(){
var stoy1=document.getElementById("t2").value;
stoy1=stoy1.replace(/\bhe\b/g,"she");
stoy1=stoy1.replace(/\bHe\b/g,"She");
stoy1=stoy1.replace(/\bhis\b/g,"her");
stoy1=stoy1.replace(/\bhim\b/g,"her");
document.getElementById("t2").value=stoy1;
}
//"One day, a monkey rides his bike near the river. This time he sees a lion under a tree. The lion runs at him. He is afraid and falls into the river. He can’t swim. He shouts. The rabbit hears him. He jumps into the river. The rabbit swims to the monkey, but he can’t help him. Luckily, an elephant comes along. He is very strong. He helps the rabbit and monkey. Three friends are very happy. They go to the elephant’s home. Then, three of them become good friends."
</script>
</body>
图示:这个程序替换,无法详细区分单词代指的是哪个动物,只是把所有单词替换了。只是做了个例子。

【JS新手教程】replace替换一个字符串中所有的某单词的更多相关文章
- JS返回一个字符串中长度最小的单词的长度
题目:编写一个方法,返回字符串中最小长度的单词的长度. var str = 'What a good day today!'; 1 //方法一 2 function returnString1(str ...
- js判断字符在另一个字符串中出现次数
经过搜索验证,提供两个方法. 1. 通过分割获取长度原理 var s = 'www.51qdq.com';var n = (s.split('.')).length-1;alert(n); //弹出 ...
- js中解析json对象:JSON.parse()用于从一个字符串中解析出json对象, JSON.stringify()用于从一个对象解析出字符串。
JSON.parse()用于从一个字符串中解析出json对象. var str = '{"name":"huangxiaojian","age&quo ...
- JS 从一个字符串中截取两个字符串之间的字符串
/************************************************* 函数说明:从一个字符串中截取 两个字符串之间的字符串 参数说明:src_str 原串, start ...
- js 统计一个字符串中出现的字符最多的字符
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- js判断一个字符串中出现次数最多的字符及次数
最近面试总是刷到这个题,然后第一次的话思路很乱,这个是我个人思路 for循环里两个 if 判断还可以优化 var maxLength = 0; var maxStr = ''; var count = ...
- 【JS新手教程】LODOP打印复选框选中的任务或页数
之前的博文:[JS新手教程]LODOP打印复选框选中的内容关于任务:Lodop打印语句最基本结构介绍(什么是一个任务)关于本文用到的JS的eval方法:JS-JAVASCRIPT的eval()方法该文 ...
- MSSQL sqlserver 统计"一个字符串"在"另一个字符串"中出现的次数的方法
转自 http://www.maomao365.com/?p=9858 摘要: 下文讲述sqlserver中最快获取一个字符串在另一个字符串中出现个数的方法分享 实验环境:sql server 20 ...
- 【面试题】JS使用parseInt()、正则截取字符串中数字
JS使用parseInt()和正则截取字符串中数字 点击打开视频讲解更加详细 parseInt() 函数 定义和用法 parseInt() 函数可解析一个字符串,并返回一个整数. 当参数 radix ...
随机推荐
- 微信网站防屏蔽防红的措施以及微信域名检测API等工具的技术原理
为什么关心这种技术?因为我经常听到身边搞微商.搞微信项目的朋友都在叫苦连天,由于微信域名屏蔽.微信域名被拦截.弄得他们尸横遍野,损失的连过年回家的路费都没了,曾经的叱咤风云一下变成了今日的倒亏损.腾讯 ...
- PostgreSQL 分区索引演进
PostgreSQL 分区表,操作性相当便捷. 但只能在创建时决定是否为分区表,并决定分区条件字段,普通表创建后,不能在修改为分区表. Note:通过其他方法也可转化为分区表. 和其他数据库一样,分区 ...
- (尚014)Vue过渡与动画
操作元素时有个过渡或动画的效果(渐变和移动的效果和放大缩小的效果) 过渡:trasition 动画:animation 1.vue动画的理解 1)操作css的trasition或animation(它 ...
- php实现大文件上传分片上传断点续传
前段时间做视频上传业务,通过网页上传视频到服务器. 视频大小 小则几十M,大则 1G+,以一般的HTTP请求发送数据的方式的话,会遇到的问题:1,文件过大,超出服务端的请求大小限制:2,请求时间过长, ...
- 《挑战30天C++入门极限》新手入门:C/C++中枚举类型(enum)
新手入门:C/C++中枚举类型(enum) 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型.之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来. ...
- Cayley-Hamilton定理与矩阵快速幂优化、常系数线性递推优化
原文链接www.cnblogs.com/zhouzhendong/p/Cayley-Hamilton.html Cayley-Hamilton定理与矩阵快速幂优化.常系数线性递推优化 引入 在开始本文 ...
- 【随记】Sql Server 2008 R2 备份时“无法打开备份设备”
如下图所示,在执行SQL一个简单的备份命令时发生下面的错误 可能的原因: 1.文件夹权限问题: 2.Sql Server SQLServer服务器用户策略问题: 问题排查: 1.查看了temp文件夹, ...
- 《sicp》模块化程序设计 笔记
<sicp>模块化程序设计 2.2.3 序列作为一种约定界面 学习笔记 这节中,讲述了一种模块化的程序设计思想,也就是将程序设计为如同信号处理过程一样,采用级联的方式将程序各个部分组合在一 ...
- pythonw.exe不能用
其实可以直接执行python目录下的Lib/idlelib/idle.bat即可,对于非安装版的python来说开始菜单是找不到启动快捷方式的.
- chrome下载提示网络错误
问题背景:项目开发测试阶段出现该问题. 复现:开发调试过程中一直没有问题,本地下载excel.Word.pdf 都完美,但是在服务部署到服务器之后,测试环境的chrome就总是下载失败,提示网络错误. ...