【问题标题】:Javascript - Save just a part of an input value to localStorageJavascript - 仅将输入值的一部分保存到 localStorage
【发布时间】:2018-10-06 20:17:13
【问题描述】:

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

我希望他能够输入一个完整的句子,例如“我的名字是 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 + "!";
&lt;p id="helloUser"&gt;&lt;/p&gt;

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

【问题讨论】:

    标签: javascript input local-storage


    【解决方案1】:

    以下内容适用于您的整个域。

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

    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>

    【讨论】:

    • 如果工作正常,您将在浏览器检查器的«storage»选项卡中找到该值。 ?所以要测试一下,从控制台:localStorage.setItem("userName", "test") 必须在存储选项卡中创建条目?
    • 这很完美!非常感谢你的帮助,伙计!
    • 我第一次尝试您的解决方案时遇到了一些语法错误。现在已经修好了。非常感谢!
    猜你喜欢
    • 2014-01-27
    • 2018-06-25
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    相关资源
    最近更新 更多