我有两个变量,需要将字符串b插入字符串a,在position表示的点上。我想要的结果是“我想要一个苹果”。我如何用JavaScript做到这一点?

var a = 'I want apple';
var b = ' an';
var position = 6;

当前回答

try

a.slice(0,position) + b + a.slice(position)

var a =“我想要苹果”; Var b = " an"; Var位置= 6; Var r= a.slice(0,位置)+ b + a.slice(位置); console.log (r);

或regexp解决方案

"I want apple".replace(/^(.{6})/,"$1 an")

var a =“我想要苹果”; Var b = " an"; Var位置= 6; var r = a.replace(新RegExp(' ^({${职位}})),“$ 1”+ b); console.log (r); console.log(“我想要苹果”.replace(/ ^({6}) /,“1美元”));

其他回答

快速修复!如果你不想手动添加空格,你可以这样做:

var a =“我想要苹果”; Var b = "an"; Var位置= 6; Var输出= [a.]Slice (0, position + 1), b, a.slice(position)].join("); console.log(输出);

(编辑:我看到上面已经回答了这个问题,对不起!)

下划线。String库有一个插入函数

Insert (string, index, substring) =>字符串

像这样

insert("I want apple", 6, " an");
// => "I want an apple"

用RegExp替换 var a = '我想要苹果'; Var b = ' an'; Var位置= 6; var = a.replace(输出新的正则表达式(^(。{${位置 }})(.*)`), `$ 1 $ {b} $ 2 '); console.log(输出);

信息:

String.prototype.replace () 正则表达式

try

a.slice(0,position) + b + a.slice(position)

var a =“我想要苹果”; Var b = " an"; Var位置= 6; Var r= a.slice(0,位置)+ b + a.slice(位置); console.log (r);

或regexp解决方案

"I want apple".replace(/^(.{6})/,"$1 an")

var a =“我想要苹果”; Var b = " an"; Var位置= 6; var r = a.replace(新RegExp(' ^({${职位}})),“$ 1”+ b); console.log (r); console.log(“我想要苹果”.replace(/ ^({6}) /,“1美元”));

var array = a.split(' '); 
array.splice(position, 0, b);
var output = array.join(' ');

这样会慢一些,但是会考虑到在an前后增加的空间 另外,你还需要改变position的值(改为2,现在更直观了)