【问题标题】:Validator.js - How to validate Alphanumeric password, in NodeJS? [duplicate]Validator.js - 如何在 NodeJS 中验证字母数字密码? [复制]
【发布时间】:2018-09-04 23:37:22
【问题描述】:

我正在使用用户输入的criso validator.js

但是 Eslint 在这行显示语法错误

if (!Validator.isAlphanumeric([(data.password,'en-US')])) {
    console.log(" Not an alphanumeric");
  }

如何正确检查用户输入的密码是字母数字,

我知道我们可以使用正则表达式来做到这一点,但我想通过使用他们提供的语法来做到这一点 isAlphanumeric(str [, locale])

这是他们的文档代码截图。

【问题讨论】:

  • 为什么只有字母数字?用于对密码进行哈希处理的哈希算法无论有无“特殊”字符都将以相同的方式工作。
  • 方括号过多。正确的应该是这样的Validator.isAlphanumeric(data.password,'en-US')我觉得
  • 强制密码为字母数字只会使密码变弱。这是一个非常糟糕的主意。
  • @Andrey 是对的。此外,您应该考虑使用password-validator 来获取密码验证规则。
  • @Andrey,您的解决方案有效。但是在您发表评论之后,Romellem 给出了相同的答案。

标签: javascript node.js validation express


【解决方案1】:

isAlphanumeric(str [, locale]) 符号中的方括号JavaScript Array literals 相关。相反,它们表示在调用isAlphanumeric 时,第一个参数str(在您的情况下为data.password)是必需的,第二个参数locale可选的 em>。

在您的情况下,您确实想传入locale。下面是它的外观:

if (!Validator.isAlphanumeric(data.password, 'en-US')) {
    console.log("Not an alphanumeric");
}

在技术文档中,方括号 ([]) 通常表示参数是可选的。从技术上讲,这只是一个约定(可能来自 Unix CLI Usage Messages),但根据我的经验,它被广泛使用,以至于总是将方括号解释为表示可选参数通常是一个安全的假设。

【讨论】:

  • 谢谢,但安德烈的评论解决了我的问题。所以它被赞成。 :D
  • 看来,正在工作。但我在我的nodejs应用程序中使用它,如果它不是alphanumeric ,那么它不应该工作,但它工作并注册用户并且没有打印到控制台Not an alphanumeric,我的github代码链接是github.com/ganeshdeshmukh1612/connect-geeks/commits/master我使用这个逻辑的主文件在这里github.com/ganeshdeshmukh1612/connect-geeks/commit/…
  • 或者我应该在主要问题中添加这个?
  • @ganeshdeshmukh 这是一个不同的问题。您最初的问题本质上是“当我调用 Validator.isAlphanumeric([(data.password,'en-US')]) 时,我收到一个错误”,这是因为您没有正确调用 isAlphanumeric 函数。现在您已经更正了这个实现错误,看起来您想要实现的整体功能不起作用,但这将是与原始帖子不同的问题。所以,我不会编辑你上面的帖子,而是问另一个问题。
猜你喜欢
  • 2016-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-30
  • 2012-01-14
  • 2023-02-22
相关资源
最近更新 更多