当前位置:首页>编程日记>正文

在特定索引处插入字符串

本站寻求有缘人接手,详细了解请联系站长QQ1493399855

本文翻译自:Insert a string at a specific index

How can I insert a string at a specific index of another string? 如何在另一个字符串的特定索引处插入一个字符串?

 var txt1 = "foo baz"

Suppose I want to insert "bar " after the "foo" how can I achieve that? 假设我要在“ foo”之后插入“ bar”,我该如何实现?

I thought of substring() , but there must be a simpler more straight forward way. 我想到了substring() ,但是必须有一个更简单,更直接的方法。


#1楼

参考:https://stackoom.com/question/I6E5/在特定索引处插入字符串


#2楼

UPDATE 2016: Here is another just-for-fun (but more serious!) prototype function based on one-liner RegExp approach (with prepend support on undefined or negative index ): 2016年更新:这是基于单行RegExp方法的另一个有趣的原型函数(但更严重!)(具有对undefined或负index前置支持):

/*** Insert `what` to string at position `index`.*/
String.prototype.insert = function(what, index) {return index > 0? this.replace(new RegExp('.{' + index + '}'), '$&' + what): what + this;
};console.log( 'foo baz'.insert('bar ', 4) );  // "foo bar baz"
console.log( 'foo baz'.insert('bar ')    );  // "bar foo baz"

Previous (back to 2012) just-for-fun solution: 上一个(回到2012年) 有趣的解决方案:

var index = 4,what  = 'bar ';'foo baz'.replace(/./g, function(v, i) {return i === index - 1 ? v + what : v;
});  // "foo bar baz"

#3楼

another solution, cut the string in 2 and put a string in between. 另一个解决方案是,将字符串切成2并将其间插入一个字符串。

var str = jQuery('#selector').text();var strlength = str.length;strf = str.substr(0 , strlength - 5);
strb = str.substr(strlength - 5 , 5);jQuery('#selector').html(strf + 'inserted' + strb);

#4楼

You can use Regular Expressions with a dynamic pattern. 您可以将正则表达式与动态模式一起使用。

var text = "something";
var output = "                    ";
var pattern = new RegExp("^\s{"+text.length+"}");
var output.replace(pattern,text);

outputs: 输出:

"something      "

This replaces text.length of whitespace characters at the beginning of the string output . 这将替换字符串output开头的text.length个空白字符。 The RegExp means ^\ - beginning of a line \s any white space character, repeated {n} times, in this case text.length . RegExp表示^\ -行\s任何空白字符的开头,重复{n}次,在此情况下为text.length Use \\ to \ escape backslashes when building this kind of patterns out of strings. 使用\\\建立这种模式出来的字符串时逃生反斜线。


#5楼

Just make the following function: 只需执行以下功能:

function insert(str, index, value) {return str.substr(0, index) + value + str.substr(index);
}

and then use it like that: 然后像这样使用它:

alert(insert("foo baz", 4, "bar "));

Output: foo bar baz 输出:foo bar baz

It behaves exactly, like the C# (Sharp) String.Insert(int startIndex, string value). 它的行为与C#(Sharp)String.Insert(int startIndex,string value)完全一样。

NOTE: This insert function inserts the string value (third parameter) before the specified integer index (second parameter) in the string str (first parameter), and then returns the new string without changing str ! 注意:此插入函数将字符串 (第三个参数)插入到字符串str (第一个参数)中指定的整数索引 (第二个参数) 之前 ,然后返回新字符串而不更改str


#6楼

If anyone is looking for a way to insert text at multiple indices in a string, try this out: 如果有人在寻找在字符串中的多个索引处插入文本的方法,请尝试以下方法:

String.prototype.insertTextAtIndices = function(text) {return this.replace(/./g, function(character, index) {return text[index] ? text[index] + character : character;});
};

For example, you can use this to insert <span> tags at certain offsets in a string: 例如,您可以使用它在字符串中的某些偏移处插入<span>标记:

var text = {6: "<span>",11: "</span>"
};"Hello world!".insertTextAtIndices(text); // returns "Hello <span>world</span>!"

http://www.coolblog.cn/news/054b0d08e3a80239.html

相关文章:

  • asp多表查询并显示_SpringBoot系列(五):SpringBoot整合Mybatis实现多表关联查询
  • s7day2学习记录
  • 【求锤得锤的故事】Redis锁从面试连环炮聊到神仙打架。
  • 矿Spring入门Demo
  • 拼音怎么写_老师:不会写的字用圈代替,看到孩子试卷,网友:人才
  • Linux 实时流量监测(iptraf中文图解)
  • Win10 + Python + GPU版MXNet + VS2015 + RTools + R配置
  • 美颜
  • shell访问php文件夹,Shell获取某目录下所有文件夹的名称
  • 如何优雅的实现 Spring Boot 接口参数加密解密?
  • LeCun亲授的深度学习入门课:从飞行器的发明到卷积神经网络
  • 支撑微博千亿调用的轻量级RPC框架:Motan
  • Mac原生Terminal快速登录ssh
  • 法拉利虚拟学院2010 服务器,法拉利虚拟学院2010
  • java受保护的数据与_Javascript类定义语法,私有成员、受保护成员、静态成员等介绍...
  • mysql commit 机制_1024MySQL事物提交机制
  • 2019-9
  • jquery 使用小技巧
  • 科学计算工具NumPy(3):ndarray的元素处理
  • vscode pylint 错误_将实际未错误的py库添加到pylint白名单
  • linux批量创建用户和密码
  • 工程师在工作电脑存 64G 不雅文件,被公司开除后索赔 41 万,结果…
  • js常用阻止冒泡事件
  • newinsets用法java_Java XYPlot.setInsets方法代碼示例
  • 气泡图在开源监控工具中的应用效果
  • 各类型土地利用图例_划重点!国土空间总体规划——土地利用
  • php 启动服务器监听
  • dubbo简单示例
  • Ubuntu13.10:[3]如何开启SSH SERVER服务
  • [iptables]Redhat 7.2下使用iptables实现NAT
  • 【设计模式】 模式PK:策略模式VS状态模式
  • CSS小技巧——CSS滚动条美化
  • JS实现-页面数据无限加载
  • 最新DOS大全
  • Django View(视图系统)
  • 阿里巴巴分布式服务框架 Dubbo
  • 阿里大鱼.net core 发送短信
  • Sorenson Capital:值得投资的 5 种 AI 技术
  • 程序员入错行怎么办?
  • 两张超级大表join优化
  • Arm芯片的新革命在缓缓上演
  • 第九天函数
  • Linux软件安装-----apache安装
  • HDU 5988 最小费用流
  • 《看透springmvc源码分析与实践》读书笔记一
  • nagios自写插件—check_file
  • python3 错误 Max retries exceeded with url 解决方法
  • 正式开课!如何学习相机模型与标定?(单目+双目+鱼眼+深度相机)
  • 通过Spark进行ALS离线和Stream实时推荐
  • 行为模式之Template Method模式