JavaScript: Заменить часть текста хранится в строковой переменной, которая начинается с '$ "? - PullRequest
0 голосов
/ 24 марта 2020

Я знаю, что замена может быть выполнена другими, более простыми способами, но из-за сложности моего кода, я должен сделать это так, как я начал ниже.

Что мне нужно, так это замените $WORD.A и $WORD.B на TEST, и в строке что-то пойдет не так.

newValue.replace(new RegExp(potentialWord, 'g'), 'TEST');

В приведенном ниже коде моя проблема возникает, когда я хочу заменить строковую переменную, которая начинается с символа $ с другой переменной.

const paragraph = 'My text for replace this $WORD.A and this $WORD.B';
let newValue = paragraph;
console.log("OLD text: ", paragraph);
const regex = /(?:\$)([A-Z]+(?:\.[A-Z])*)/gm;
const foundPossibleWords = newValue.match(regex);
console.log(foundPossibleWords);
if (foundPossibleWords != null && foundPossibleWords !== undefined) {
  foundPossibleWords.forEach((potentialWord) => {
    newValue.replace(new RegExp(potentialWord, 'g'), 'TEST');
  });
}
console.log("NEW text: ", newValue);

Ответы [ 2 ]

1 голос
/ 24 марта 2020

Что-то подобное соответствует вашим потребностям?

const paragraph = 'My text for replace this $WORD.A and this $WORD.B and $ANOTHER_WORD';
const re = /\$[^\s]+/gm;
const replacement = 'TEST';

var result = paragraph.replace(re, replacement);

console.log("NEW text: ", result);
1 голос
/ 24 марта 2020

Вы можете использовать:

const paragraph = 'My text for replace this $WORD.A and this $WORD.B';
const res = paragraph.replace(/[\$][\w\.]+/g, 'TEST');
console.log(res);

Regex Demo

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