У меня есть условие if: если вы введете «[first_name]» в текстовое поле, результатом будет «Джон». Но если вы введете «Привет [имя_имя]», результатом будет «Привет [имя_имя]».
Вот код, я знаю, что если вы вводите только «[first_name]» в текстовое поле, он работает. Но как это исправить, если я напишу что-нибудь в текстовом поле, результатом будет то, что я пишу, а переменная «[first_name]» будет «Джон». Спасибо.
<p> Input [first_name] for variable </p>
<input id = "myInput" type = "text">
<button onclick = "myFunction()">Enter</button>
<p id = "result"></p>
function myFunction(){
var input = document.getElementById("myInput").value;
var myVar = "[first_name]"
if (input == myVar){
var data = document.getElementById('result').value= "John"
document.getElementById("result").innerHTML = data;
}
else{
document.getElementById("result").innerHTML = input
}
}
Что я пробовал Поле ввода: Привет, [имя] Результат: Привет, [имя]
Чего я ожидаю Поле ввода: Привет, [имя] Результат: привет Джон
или что бы я ни написал в текстовом поле с переменной «[first_name]», это будет «Джон» и другой текст, который я пишу.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам необходимо немного изменить свой код JavaScript. Вместо сравнения всей входной строки с «[first_name]» вам следует проверить, присутствует ли «[first_name]» во входной строке, используя метод indexOf(). Вот измененный код:
function myFunction(){
var input = document.getElementById("myInput").value;
var myVar = "[first_name]";
if (input.indexOf(myVar) !== -1){
var data = input.replace(myVar, "John");
document.getElementById("result").innerHTML = data;
}
else{
document.getElementById("result").innerHTML = input;
}
}<p>Input [first_name] for variable</p>
<input id = "myInput" type = "text">
<button onclick = "myFunction()">Enter</button>
<p id = "result"></p>Я думаю, ты хочешь что-то вроде этого
function myFunction() {
var input = document.getElementById("myInput").value;
var myVar = "[first_name]";
if (input == myVar) {
var data = (document.getElementById("result").value = "John");
document.getElementById("result").innerHTML = data;
} else {
document.getElementById("result").innerHTML = input.replace(
myVar,
"John"
);
}
}<p>Input [first_name] for variable</p>
<input id = "myInput" type = "text" />
<button onclick = "myFunction()">Enter</button>
<p id = "result"></p>надеюсь, это поможет
Рассмотрите возможность использования .replaceAll
Введите [first_name] для переменной
<input id = "myInput" type = "text">
<button onclick = "myFunction()">Enter</button>
<p id = "result"></p>
function myFunction() {
var input = document.getElementById("myInput").value;
var myVar = "[first_name]";
var result = input.replace(myVar, "John");
document.getElementById("result").innerHTML = result;
}
Рассмотрим .replaceAll
Рассмотрите возможность использования
.replaceAll