Я хочу заменить многие слова (или фразы) на одно и то же значение в тексте, используя функцию RegExp () javascript. Он заменяет отдельные слова на правильные значения, но когда ему нужно заменить фразу, содержащую то же слово, это не работает (ИДК, как это будет работать).
В моем тексте, например, я хочу заменить активность и еженедельные минуты активности с тем же значением:
«Активность пациента соответствует недельным минутам активности»
Но он просто заменяет активность
Как я это делаю:
У меня есть ключевые слова. js файл где я получаю все фразы внутри объекта, структурированного так:
let keywords: {
"activity": {
phrases: ['activity']
},
"sleep": {
phrases: ['sleep']
}
}
и в моем разделе javascript в моем html:
@section('javascript')
<script type="application/javascript" src="{{ asset("js/keywords.js") }}"></script>
<script>
$(function () {
@if($patient)
let patient = {
weight: 60,
height: 70,
'currents' : {
"activity" : 100,
"sleep" : 60
},
}
let t = $("#text-section-article").html(t); //the text where i want to look for word/phrases
Object.entries(keywords).forEach(([key, values])=>{
//Im iterating all over the keywords words
Object.entries(values).forEach(([phraseKey, phraseValue])=>{
//Im iterating all over the phrases
if(patient.currents.hasOwnProperty(key)){
//If my patient have activity in my object 'currents' I put a tooltip to that word in my body text by replacing it in this way.
title = `Your current ${phraseValue} is ${patient.currents[key]}`; //Your current activity is 100
t = t.replace(new RegExp(key, 'gi'), '<span data-toggle="tooltip" title="' + title + '" class="tip ' + phraseValue + '">' + phraseValue + '</span>');
}
});
});
$("#text-section-article").html(t);
@endif
});
</script>
@endsection
В этом случае в моей статье текст все активность слова теперь имеют всплывающую подсказку, показывающую его текущее значение.
Что я хочу сделать, это добавить больше слов и фраз к объекту моих ключевых слов следующим образом:
let keywords: {
"activity": {
phrases: ['activity', 'Weekly activity minutes']
},
"sleep": {
phrases: ['sleep', 'Sleep minutes']
}
}
, чтобы заменить все эти фразы (если они существуют) в тексте моей статьи тем же значением o f терпеливый объект.
У меня плохое время с этим, и я буду очень признателен, если вы поможете мне найти способ справиться со всем, что я описал, и если есть простой / лучший способ справьтесь, просто дайте мне знать.
Спасибо за чтение!