у меня есть 3 текстовых поля. Первый пользователь вводит строку. Во втором поле они входят в первую строку, которую они хотят заменить. Третье текстовое поле - это строка, которая должна выполнять замену.Заменить часть строки другой строкой javascript
Я пытаюсь использовать метод replace(), но я не думаю, что я использую его правильно, или я должен использовать что-то еще.
HTML:
<form>
Enter a string:<input type="text" id="user_string"><br>
Enter portion of previous string to be replaced: <input type="text" id="replace_string"><br>
Enter new string: <input type="text" id="add_string"><br>
<input type="button" value="Execute" onclick="BaitAndSwitch()"><br>
Result: <input type="text" id="req_4_results"><br>
</form>
Javascript:
function BaitAndSwitch(){
// create variables for the user entered data
var UserString = document.getElementById("user_string").value;
var ReplaceString = document.getElementById("replace_string").value;
var AddString = document.getElementById("add_string").value;
var Results = UserString.replace(ReplaceString, Addstring);
if (UserString.indexOf(ReplaceString) > -1) {
Document.getElementById("req_4_results").value = Results;
}
else{
alert("Something went wrong! Please check the data you entered.")
}
}
Я знаю, что я делаю что-то неправильно. Может быть, использование переменных в методе .replace()? Или, может быть, если ... используя строку indexOf?
Я по существу пытался установить его там, где он будет проверять UserString со значением ReplaceString, и если он будет соответствовать, он затем выполнит метод replace() и покажет результаты для данного элемента HTML. Иначе, если ReplaceString не соответствует какой-либо вещи из UserString, она предупреждает пользователя о том, что что-то не так, и проверить его.
'document.getElementById («req_4_results»)' должен быть ' document.getElementById ("req_4_results") '. JavaScript - это Case SensiTiVe.Также обратите внимание, что ваша функция заменит только первое вхождение _needle_ ('ReplaceString'). Если вы хотите заменить все из них, вы должны [использовать регулярное выражение] (http://stackoverflow.com/a/494046/1913729). – blex
Несвязанные, но в общем случае нефункциональные переменные должны быть более общими, например, 'userString',' replaceString' и т. Д. Имена капитализированных переменных, по соглашению, предназначены для функций, используемых для создания объектов через 'new'. Следующие соглашения помогают разработчикам JS думать о вашем коде. –
@DaveNewton спасибо за эту информацию, я не знал, что – kronis72