【问题标题】:How to do validation that email is already exist or not in localStorage如何验证本地存储中是否已存在电子邮件
【发布时间】:2021-09-17 19:12:23
【问题描述】:

我正在尝试从输入字段中获取电子邮件值以检查电子邮件是否已经存在。

如何从 localStorage 获取数组中的特定值并验证电子邮件。

这是我的代码:

<!--HTML code-->
<div>
    <label for="email">Email:</label>
    <input type="email" name="email" id="email" formControlName="email">
</div>

<!--component.ts-->

onSubmit() { 
    this.user = Object.assign(this.user, this.checkoutForm.value);
    this.addUser(this.user); 
} 

addUser(user:any) {
    let users: any[] = [];
    if(localStorage.getItem('Users')) {
      users = JSON.parse(localStorage.getItem('Users') || '{}')
      users = [user, ...users];
    } else {
      users = [user];
    }
    localStorage.setItem('Users', JSON.stringify(users));
}

【问题讨论】:

  • 这与Angular无关,这里只有JavaScript相关。
  • 我想您唯一的选择是解析所有用户并检查电子邮件。在 localStorage 中存储大量数据通常不是一个想法,您应该使用适当的数据库或 IndexedDB。
  • 您好,感谢您的意见,实际上使用 localStorage 的原因是我正处于学习阶段。谢谢人:)

标签: angular local-storage angular-local-storage


【解决方案1】:

您只能get 从您的 localStorage 中获取完整项目,除此之外,您只能从中获取字符串。因此,您将获得所有内容并希望保留一个元素,而不是只获得一个元素。

这取决于您的实际数据的外观,但这是一个存储数字数组并从中获取元素 2 的示例:

localStorage.setItem('myItem', [1,2,3]);
+localStorage.getItem('myItem').split(',')[2]

注意第二行开头的“+”将值转换为数字。

【讨论】:

    猜你喜欢
    • 2011-02-14
    • 2012-10-30
    • 2011-03-04
    • 2011-08-30
    • 2023-03-21
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多