Как извлечь только имя из письма в лямбда-узле js - PullRequest
1 голос
/ 08 апреля 2019

Привет, я использую 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

1 Ответ

0 голосов
/ 08 апреля 2019

Вы можете использовать регулярное выражение.

Вот однострочный код для получения username из email.

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

Для дополнительного использования Регулярное выражение для электронной почты

Для вашего случая

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

...