Заменить строку из предложения - PullRequest
3 голосов
/ 20 сентября 2019

У меня есть требование заменить строку в предложении.Ниже приведен мой код

CASE 1 (Working): namesArray имеют имена

var response = "Thank you for your request [VARIABLE]. [VARIABLE] will assit you.";
i = 0; 
namesArray= ['Emmy', 'John']
response.replace(/\[VARIABLE\]/g, str => {
var replace = namesArray[i];
i++;
return replace;
});
Output = Thank you for your request Emmy. John will assist you.

Выше кода работает нормально, иногда 'namesArray' может иметь нулевые значения вв этом случае выходные данные будут иметь пробелы в замененном месте (т. е. 'request.').Как я могу удалить этот пробел при замене пустого значения.

CASE 2 (не работает): namesArray имеет нулевые значения

var response = "Thank you for your request [VARIABLE]. [VARIABLE] will assit you.";
i = 0; 
namesArray = ['', 'John']
response.replace(/\[VARIABLE\]/g, str => {
var replace = namesArray[i];
i++;
return replace;
});

Output = Thank you for your request . John will assist you.

Ожидаемый результат = Спасибо за ваш запрос.Джон поможет вам.

Ответы [ 2 ]

3 голосов
/ 20 сентября 2019

Вы можете сопоставить пробел, предшествующий [VARIABLE], и условно заменить его на:

const response = "Thank you for your request [VARIABLE]. [VARIABLE] will assist you.";
let i = 0;
const namesArray = ['', 'John'];

const result = response.replace(/(\s*)\[VARIABLE\]/g, (m0, spaces) => {
  const replace = namesArray[i++];
  return replace ? spaces + replace : '';
});

console.log(result);
0 голосов
/ 20 сентября 2019

Хорошо, я не знаю, откуда у вас имена.Но, исходя из предоставленной вами информации.Я бы предварительно заполнял namesArray значениями по умолчанию.например,namesArray = ['user', 'agent'] Если ваш источник имен заменит пользователя или агента, вы увидите правильный результат, если нет, то вместо пробелов у вас будет пользователь или агент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...