如何从lambda节点js中的电子邮件中仅提取名称

问题描述 投票:1回答:1

您好,我在node js函数中使用lambda。我只需要从电子邮件中提取名称来查询dynamo db。我只需要名字,因为例如:如果我给pavi@gamil.com。我应该收到所有重复的电子邮件

pavi1@gmail.com
pavi2@gmail.com

请帮我这样做以下是我的代码:

const AWS = require('aws-sdk');
var docClient = new AWS.DynamoDB.DocumentClient();


var tableName = "Testing";

exports.handler = (event, context, callback) => {
    console.log(event.PersonName)





docClient.scan(params, function(err, data){
    if(err){
        callback(err, data);
    }else{
        callback(err, data);
   }

在上面的代码中,我直接给出了这个名字。当它动态出现时,它应该能够从电子邮件中提取名称,并且应该分配给val

amazon-web-services aws-lambda amazon-dynamodb
1个回答
0
投票

您可以使用正则表达式。

这是从username获得email的一行代码。

   var emailId = event.emailId; // or any other var which is having emaiID
   var username = emailId.replace(/@.*$/,"");

更多用例Regular expression for email

对于你的情况

exports.handler = (event, context, callback) => {
    console.log(event.PersonName)

var emailId = event.emailId; // or any other var which is having emaiID
var val = emailId.replace(/@.*$/,""); 

// use console.log to see if you're getting correct username

var params=  {
    TableName:'Testing',
    KeyConditionExpression : 'EmailID = :EmailID',    
    FilterExpression : 'begins_with (EmailID, :val) ',
    ExpressionAttributeValues : {
       ':val' :  val
   }
};

console output

热门问题
推荐问题
最新问题