У меня есть две переменные, и мне нужно вставить строку b
в строку a
в точке, представленной position
. В результате я ищу "Я хочу яблоко". Как я могу сделать это с помощью JavaScript?
var a = 'I want apple';
var b = ' an';
var position = 6;
javascript
Sami
источник
источник
var output = [a.slice(0, position + 1), b, a.slice(position)].join('');
дать ОП «Я хочу яблоко», а не «Я хочу яблоко».Изменить: заменено
.substr
на,.substring
потому что.substr
теперь это устаревшая функция (согласно https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr )источник
String.prototype.substr
устарела сейчас. developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…substring
в этом случае является прямой заменой для устаревшегоsubstr
, так что ответ будет:var output = a.substring(0, position) + b + a.substring(position);
..substring
Вы можете добавить эту функцию в строковый класс
так что вы можете использовать его на любом строковом объекте:
источник
Использование строковых литералов ES6 будет намного короче:
источник
Может быть, даже лучше, если вы определите позицию с помощью indexOf () следующим образом:
затем вызовите функцию следующим образом:
Обратите внимание, что я ставлю пробел после «an» в вызове функции, а не в операторе return.
источник
Библиотека Underscore.String имеет функцию вставки
вот так
источник
пытаться
Показать фрагмент кода
или регулярное выражение решение
Показать фрагмент кода
источник
Это будет медленнее, но позаботится о добавлении пробела до и после. Кроме того, вам придется изменить значение позиции (на 2, теперь это более интуитивно понятно)
источник
Быстрая починка! Если вы не хотите добавлять пробел вручную, вы можете сделать это:
(редактировать: я вижу, что на самом деле ответили выше, извините!)
источник
Если просмотр назад ES2018 является доступен , один более регулярным выражением решения, которое использует его , чтобы «заменить» на нулевую ширину позиции после символа N - го ( по аналогии с @Kamil Kiełczewski, но без сохранения исходных символов в захвате группы):
Показать фрагмент кода
источник
Ну просто небольшое изменение, потому что вышеприведенное решение выводит
вместо того
Чтобы получить вывод как
используйте следующий модифицированный код
источник