我是Nunjucks / Express和Node领域的新手。

我有一个路由文件,该文件正在移植来自表单字段的输入值。我需要检查该值是否包含表达式“ gov”。

所以我创建了以下内容:

router.get('/test/output/', function (req, res) {
  var emailAdress = req.session.data['accountEmail']
  if ('gov' in emailAdress){
    isCS = true
  }
  res.render('test/output.html',{
    'email' : emailAdress,


.... 等等...

这给了我以下错误:

TypeError: Cannot use 'in' operator to search for 'gov' in '[email protected]'


我知道这与对象和数组有关-我只是找不到解决方案-我很欣赏它的简单性。任何帮助深表感谢。

最佳答案

in operator仅适用于对象,不适用于字符串基元。

要在字符串中搜索,可以使用includes

emailAdress.includes('gov')


与ES5兼容的版本(在includes之前):

emailAdress.indexOf('gov') !== -1


或者,您可以检查字符串是否以'gov'结尾:

emailAdress.endsWith('gov')

09-25 19:03