在另一个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);