У меня есть страница, на которой у пользователя спрашивают его имя, и он должен будет ввести его в текстовое поле.
Я хочу, чтобы он мог набрать полное предложение типа «меня зовут Джон Доу» именя встретили с чем-то вроде «Здравствуйте, Джон Доу. Добро пожаловать на эту страницу».
Мне удалось добиться этого, игнорируя словосочетания из ввода, такие как «меня зовут», «Я есть» и «Я«м».Скорее всего, оставшимися входными данными будет имя пользователя.
Теперь у меня вопрос: как сохранить имя пользователя в localStorage, чтобы использовать его позже, на другой странице?Я не могу сохранить все, что вводит пользователь.Это дало бы мне что-то вроде «Добро пожаловать, меня зовут Джон Доу».
Я хочу сохранить только те слова, которые остались после замен.
Вот что у меня есть:
function myFunction() {
var text;
var answers = document.getElementById("userInput").value.toLowerCase();
answers = answers.replace(/[^a-z0-9' ]/g, "");
answers = answers.replace("my name is", "");
answers = answers.replace("i am", "");
answers = answers.replace("i'm", "");
switch (answers) {
case "":
text = "Please tell me your name.";
break;
default:
text = "Hello, " + CapitalizeName(answers) + ". Welcome to this page.";
}
document.getElementById("greeting").innerHTML = text;
document.getElementById("userInput").value = "";
localStorage.setItem("userName", CapitalizeName(answers));
}
function CapitalizeName(name) {
let _array = name.split(" ");
let n_array = [];
_array.map(w => {
w = w.charAt(0).toUpperCase() + w.slice(1);
n_array.push(w);
});
return n_array.join(" ");
}
<p>What is your name?</p>
<input id="userInput" type="text" spellcheck="false" autofocus onKeyDown="if(event.keyCode==13) myFunction();">
<p id="greeting"></p>
На второй странице у меня есть это:
localStorage.getItem("userName");
document.getElementById("helloUser").innerHTML = "Welcome back " + userName + "!";
<p id="helloUser"></p>
Я предполагаю, что я не сохраняю это правильно.Я пытался найти решения в Интернете, но не могу найти что-то конкретное.