Javascript - 仅将输入值的一部分保存到 localStorage

标签 javascript input local-storage

我有一个页面,用户被询问他的名字并且必须在文本框中输入它。

我希望他能够输入完整的句子,例如“我的名字是 John Doe”,并收到类似“您好,John Doe。欢迎来到此页面”的问候语。

我设法通过忽略输入中的单词组合来实现这一点,例如“我的名字是”、“我是”和“我是”。输入的其余部分很可能是用户名。

我现在的问题是,如何将用户名保存到 localStorage,以便稍后在不同的页面上使用它?我无法保存用户输入的所有内容。那会让我得到类似“欢迎回来,我的名字是 John Doe”之类的东西。

我只想保存替换后剩下的单词。

这是我的:

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>

我的猜测是我没有以正确的方式保存它。我尝试在线搜索解决方案,但找不到任何具体的解决方案。

最佳答案

以下将适用于您的整个域。

请注意,出于安全原因(已阻止),它没有出现在示例中。

data.onchange = (function(){
  localStorage.setItem("userName", data.value)
})
var userName = localStorage.getItem("userName");

document.getElementById("helloUser").innerHTML = "Welcome back " + userName + "!";
<input id="data">
<p id="helloUser"></p>

关于Javascript - 仅将输入值的一部分保存到 localStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52682995/

相关文章:

reactjs - React router <Redirect> 未在状态下重定向

android - 对于使用 Parse 后端的多设备应用程序,是否建议使用离线存储?

javascript - 无需滚动的 Wordpress Jquery 动画

javascript - 当 Meteor 中的变量发生变化时,如何制作响应式 UI?

javascript - 更改背景不透明度 onclick

batch-file - 等待输入 BATCH

javascript - 在现代 javascript 中求和输入类型数字的两个值

javascript - 编辑本地存储用户?

javascript - 展平数组,即 [[1, 2, 3], [4, 5], [6]] 应该给出 [1, 2, 3, 4, 5, 6] 的输出。代码中的错误来源

javascript - 表单字段自动前进