Как вывести весь вводимый текст пользователем из input после определённого слова
К примеру, у меня есть input и кнопка, мне нужно, после нажатия на кнопку делать проверку, если в поле ввода после слов "Привет", есть ещё какой-то текст, к примеру "Привет как дела", то при нажатии на кнопку выводить всё после "Привет", как итог с примера, вместо "Привет как дела", вывести должно "как дела".
Пробовал через split выводить, но не получалось проверку, вводил так
if(val.value == "hellow world".split("hello")[1]){
out.innerHTML = val.split("hello")[1];
}
Ответы (1 шт):
Потому что
console.log( "hello world".split("hello") );
split в принципе правильно написан,
но ваше условие сработает только если введут ровно " world"
$("button").addEventListener("click", function() {
let val = $("input").value;
console.clear();
console.log( val.split("hello") ); // не находит HeLLo
console.log( val.toLowerCase().split("hello") ); // найдет
let split = val.toLowerCase().split("hello");
if (split.length == 1) return;
console.log( split[1] );
});
/***/
function $(str) { return document.querySelector(str); }
<input value="Бубу! Hello! Дратути!">
<button>test</button>
А введут Hello hello heLlo - не сработает. Если это важно, можно решать и через indexOf():
$("button").addEventListener("click", function() {
let val = $("input").value;
let word = "hello";
let index = val.toLowerCase().indexOf(word);
if (index == -1) return;
console.log( val.slice( index + word.length ) );
});
/***/
function $(str) { return document.querySelector(str); }
<input value="Hello hello heLlo world!">
<button>test</button>
А через регулярные выражения, решается в одну строчку:
console.log( ( $("input").value.match(/hello(.*)/i) || [0,''] )[1] );