在另一个string的位置x插入string

我有2个variables,需要在这个位置插入b。 我正在寻找的结果是“我想要一个苹果”。 我怎样才能做到这一点与jQuery或JavaScript?

var a = "I want apple"; var b = "an"; var position = 6; 
 var a = "I want apple"; var b = "an"; var position = 6; var output = [a.slice(0, position), b, a.slice(position)].join(''); console.log(output); 
 var output = a.substr(0, position) + b + a.substr(position); 

您可以将此函数添加到string类

 String.prototype.insertAt=function(index, string) { return this.substr(0, index) + string + this.substr(index); } 

所以你可以在任何string对象上使用它:

 var myString = "abcd"; myString.insertAt(1, "XX"); 

如果使用indexOf()确定位置,可能会更好:

 function insertString(a, b, at) { var position = a.indexOf(at); if (position !== -1) { return a.substr(0, position) + b + a.substr(position); } return "substring not found"; } 

然后像这样调用函数:

 insertString("I want apple", "an ", "apple"); 

请注意,我在函数调用中的“an”之后放置了一个空格,而不是在return语句中。

Underscore.String库有一个插入的函数

插入(string,索引,子string)=>string

像这样

 insert("Hello ", 6, "world"); // => "Hello world" 
 var array = a.split(' '); array.splice(position, 0, b); var output = array.join(' '); 

这样会比较慢,但是会考虑在前后添加空格。另外,你必须改变位置的值(到2,现在更直观)

那么只是一个小小的变化导致上述解决scheme的产出

“我想要一个苹果”

代替

“我想要一个苹果”

获得输出

“我想要一个苹果”

使用以下修改的代码

 var output = a.substr(0, position) + " " + b + a.substr(position);