Мое приложение имеет TextArea
и Input
.
❶=red, ❷=green, ❸=blue
.
Пользователь записывает sentence
в TextArea
: и набирает sentence
в Input
он хочет изменить свой цвет.
sentence
:
Hi hola, how are you, are you ok
-> переходит к TextArea
how are you
или are you
или you
-> переходит к Input
Теперь Пользователь хочет изменить color
некоторого words
.
Шаг 1
Пользователь выбирает you
и хочет изменить его color
на red
;
Так будет исправить с помощью:
Hi hola, how are #❶you#, are #❶you# ok
Шаг 2
Пользовательская идея изменилась, и теперь она хочет выбрать are you
и изменить два слова are you
color
до green
;
Так будет правильно с:
Hi hola, how #❷are you#, #❷are you# ok
Шаг 3
Идея пользователя again
изменилась, и теперь он хочет выбрать how are you
и изменить три слова how are you
's color
до blue
;
Здесь второй are you
остается от om Step 2
Так будет правильно с:
Hi hola, #❸how are you#, #❷are you# ok
Теперь давайте подумаем unlike
выше:
Шаг 1
Пользователь хочет выбрать how are you
и изменить три слова how are you
'* color
на red
;
Так будет правильно с:
Hi hola, #❶how are you#, are you ok
Шаг 2
Идея пользователя изменился, и теперь хочет выбрать are you
и изменить два слова are you
* color
на green
;
Итак, здесь Шаг 1 у него было three word
(how are you)
как red
, а в Шаг 2 изменил цвет two word
(are you)
на green
, поэтому one word
how
все еще красный от шаг 1 , но are you
это green
Так будет правильно с:
Hi hola, #❶how# #❷are you#, #❷are you# ok
Шаг 3
Идея пользователя again
изменилась и теперь хочет выбрать только you
и изменить одно слово you
color
на blue
;
Итак, здесь, в Шаг 1 У него было * 1 172 * (how are you)
как red
, а в Шаг 2 он имел one word
-> how
как red
и two word
-> are you
как green
, но в это Шаг 3 изменил только color
слова you
на blue
, поэтому how
все еще red
с Шаг 1 , are
- green
с Шаг 2 и you
равен blue
с Шаг 3
Так будет правильно с:
Hi hola, #❶how# #❷are# #❸you#, #❷are# #❸you# ok
// Мои усилия:
let globalBalString = "Hi hola, how are you, are you ok";
let reminderObject = {};
// эта функция внутри реагирует functional component
.
const makeStyle = (sentence, colorSymbole) => {
if(reminderObject[sentence] === undefined){
reminderObject[sentence] = colorSymbole;
var newString = globalBalString.replace(new RegExp(sentence, "g"), `#${colorSymbole}${sentence}#`);
globalBalString = newString;
}else{
reminderObject[sentence] = colorSymbole;
var newString = globalBalString.replace(new RegExp(`#${reminderObject[sentence]}${sentence}#`, "g"), `#${colorSymbole}${sentence}#`);
globalBalString = newString;
}
}
Мое решение работает только для обоих Шаг 1 , но не работает для Шаг 2 и Шаг 3