我有两个变量,需要将字符串b插入字符串a,在position表示的点上。我想要的结果是“我想要一个苹果”。我如何用JavaScript做到这一点?
var a = 'I want apple';
var b = ' an';
var position = 6;
我有两个变量,需要将字符串b插入字符串a,在position表示的点上。我想要的结果是“我想要一个苹果”。我如何用JavaScript做到这一点?
var a = 'I want apple';
var b = ' an';
var position = 6;
当前回答
var a =“我想要苹果”; Var b = " an"; Var位置= 6; Var输出= [a.]Slice (0, position), b, a.slice(position)].join("); console.log(输出);
可选:作为String的原型方法
下面可以使用一个可选的removeCount参数,在另一个字符串中按所需索引拼接文本。
if (String.prototype.splice === undefined) { /** * Splices text within a string. * @param {int} offset The position to insert the text at (before) * @param {string} text The text to insert * @param {int} [removeCount=0] An optional number of characters to overwrite * @returns {string} A modified string containing the spliced text. */ String.prototype.splice = function(offset, text, removeCount=0) { let calculatedOffset = offset < 0 ? this.length + offset : offset; return this.substring(0, calculatedOffset) + text + this.substring(calculatedOffset + removeCount); }; } let originalText = "I want apple"; // Positive offset console.log(originalText.splice(6, " an")); // Negative index console.log(originalText.splice(-5, "an ")); // Chaining console.log(originalText.splice(6, " an").splice(2, "need", 4).splice(0, "You", 1)); .as-console-wrapper { top: 0; max-height: 100% !important; }
其他回答
下划线。String库有一个插入函数
Insert (string, index, substring) =>字符串
像这样
insert("I want apple", 6, " an");
// => "I want an apple"
var array = a.split(' ');
array.splice(position, 0, b);
var output = array.join(' ');
这样会慢一些,但是会考虑到在an前后增加的空间 另外,你还需要改变position的值(改为2,现在更直观了)
用RegExp替换 var a = '我想要苹果'; Var b = ' an'; Var位置= 6; var = a.replace(输出新的正则表达式(^(。{${位置 }})(.*)`), `$ 1 $ {b} $ 2 '); console.log(输出);
信息:
String.prototype.replace () 正则表达式
您可以将此函数添加到字符串类
String.prototype.insert_at=function(index, string)
{
return this.substr(0, index) + string + this.substr(index);
}
所以你可以在任何字符串对象上使用它:
var my_string = "abcd";
my_string.insertAt(1, "XX");
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美元”));