JS替换字符串中指定位置的字符(多种方法)


Posted in Javascript onMay 28, 2020

假设有一个字符串,可能'Good Morning'也可能是'Hello World',我想将第五个字符,替换成'-'
因为字符串虽然可以像数组那样获取某一位置字符'Hello World'[4],但是不能像数组那样直接修改某一位置的字符'Hello World'[4] = '-',这样是行不通的,但是可以把它切分成数组,修改某一位置的值,然后在合并回来。
方法1:

const replaceStr1 = (str, index, char) => {
 const strAry = str.split('');
 strAry[index] = char;
 return strAry.join('');
 }
 replaceStr(str1, 4, '-'); // => Good-Morning
 replaceStr(str2, 4, '-'); // => Hell- World

js的字符串有个substring方法,用于提取字符串中介于两个指定下标之间的字符,也就是说可以用'Hello World'.substring(0, 4),得到Hell,加上要替换的字符,再加上后面的字符串就可以。
方法2:

const replaceStr2 = (str, index, char) => {
 return str.substring(0, index) + char + str.substring(index + 1);
 }
 replaceStr2(str1, 4, '-'); // => Good-Morning
 replaceStr2(str2, 4, '-'); // => Hell- World

ps:下面看下js替换字符串中所有指定的字符

第一次发现JavaScript中replace()方法如果直接用str.replace("-","!")只会替换第一个匹配的字符.
str.replace(/\-/g,"!")则可以全部替换掉匹配的字符(g为全局标志)。

replace()
Thereplace()methodreturnsthestringthatresultswhenyoureplacetextmatchingitsfirstargument
(aregularexpression)withthetextofthesecondargument(astring).
Iftheg(global)flagisnotsetintheregularexpressiondeclaration,thismethodreplacesonlythefirst
occurrenceofthepattern.Forexample,

vars="Hello.Regexpsarefun.";s=s.replace(/\./,"!");//replacefirstperiodwithanexclamationpointalert(s);

producesthestring“Hello!Regexpsarefun.”Includingthegflagwillcausetheinterpreterto
performaglobalreplace,findingandreplacingeverymatchingsubstring.Forexample,

vars="Hello.Regexpsarefun.";s=s.replace(/\./g,"!");//replaceallperiodswithexclamationpointsalert(s);

yieldsthisresult:“Hello!Regexpsarefun!”

所以可以用以下几种方式.:

string.replace(/reallyDo/g,replaceWith);
string.replace(newRegExp(reallyDo,'g'),replaceWith);

string:字符串表达式包含要替代的子字符串。
reallyDo:被搜索的子字符串。
replaceWith:用于替换的子字符串。

Js代码

<script type="text/javascript"> 
String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) { 
  if (!RegExp.prototype.isPrototypeOf(reallyDo)) { 
    return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith); 
  } else { 
    return this.replace(reallyDo, replaceWith); 
  } 
} 
</script>

总结

到此这篇关于JS替换字符串中指定位置的字符的文章就介绍到这了,更多相关js替换字符内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
extjs 学习笔记(一) 一些基础知识
Oct 13 Javascript
基于jquery的二级联动菜单实现代码
Apr 25 Javascript
火狐textarea输入法的bug的触发及解决
Jul 24 Javascript
实现动画效果核心方式的js代码
Sep 27 Javascript
js键盘事件的keyCode
Jul 29 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
May 17 Javascript
在页面中引入js的两种方法(推荐)
Aug 29 Javascript
微信小程序中时间戳和日期的相互转换问题
Jul 09 Javascript
vue-cli3+typescript初体验小结
Feb 28 Javascript
vue实现分页栏效果
Jun 28 Javascript
基于vue-draggable 实现三级拖动排序效果
Jan 10 Javascript
Vue插槽_特殊特性slot,slot-scope与指令v-slot说明
Sep 04 Javascript
js实现九宫格布局效果
May 28 #Javascript
微信小程序实现电子签名并导出图片
May 27 #Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
May 27 #Javascript
微信公众号网页分享功能开发的示例代码
May 27 #Javascript
JS字符串补全方法padStart()和padEnd()
May 27 #Javascript
Js生成随机数/随机字符串的方法小结【5种方法】
May 27 #Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
May 27 #Javascript
You might like
第1次亲密接触PHP5(2)
2006/10/09 PHP
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
php创建基本身份认证站点的方法详解
2013/06/08 PHP
浅谈php的优缺点
2015/07/14 PHP
Yii2中关联查询简单用法示例
2016/08/10 PHP
PHP信号处理机制的操作代码讲解
2019/04/19 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
JS防止用户多次提交的简单代码
2013/08/01 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
原生javascript实现图片滚动、延时加载功能
2015/01/12 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
jquery实现简洁文件上传表单样式
2015/11/02 Javascript
Javascript实现倒计时时差效果
2017/05/18 Javascript
浅谈Vue.js 1.x 和 2.x 实例的生命周期
2017/07/25 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
2018/02/01 Javascript
Node.js文件编码格式的转换的方法
2018/04/27 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
关于layui导航栏不展示下拉列表的解决方法
2019/09/25 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
python3图片文件批量重命名处理
2019/10/31 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
python 用opencv实现图像修复和图像金字塔
2020/11/27 Python
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
Lookfantastic葡萄牙官方网站:欧洲第一大化妆品零售商
2018/03/17 全球购物
运动会稿件300字
2014/02/14 职场文书
开服装店计划书
2014/08/15 职场文书
小学生手册家长意见
2015/06/03 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
竞聘开场白方式有哪些?
2019/08/28 职场文书
为什么mysql字段要使用NOT NULL
2021/05/13 MySQL
KVM基础命令详解
2022/04/30 Servers