Как извлечь только имя из электронного письма в лямбда-узле js

Привет, я использую node js в функции lambda. Мне нужно извлечь только имя из электронного письма, чтобы запросить dynamo db. Мне нужно только имя, потому что, например: если я даю [email protected]. Я должен получить все повторяющиеся электронные письма, такие как

[email protected]
[email protected]

Пожалуйста, помогите мне сделать это Ниже мой код:

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


var tableName = "Testing";

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





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

В приведенном выше коде я дал непосредственно имя. Когда это происходит динамически, он должен иметь возможность извлекать имя из электронного письма и должен быть назначен на val

Как вы отправляете электронное письмо в функцию? Это по событию?

Atul Kumar 08.04.2019 07:37

Кроме того, как вы собираетесь решать что-то вроде [email protected]. Это не очень хорошая идея, чтобы получить имя из электронной почты.

Atul Kumar 08.04.2019 07:43

да, я передаю это как событие .... мне нужно только имя из электронного письма ... например: kumatul123 ... пожалуйста, помогите мне

samiksha p 08.04.2019 08:05

Можете ли вы помочь мне ... я думаю, что мне следует использовать строковую функцию .... Я не знаю, как это сделать

samiksha p 08.04.2019 08:12

Посмотрите ответ, если он вам поможет.

Atul Kumar 08.04.2019 08:13
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
5
249
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Вот однострочный код, чтобы получить username из email.

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

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

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

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

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

// use console.info 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

Сэр... получаю сообщение об ошибке: "errorMessage": "RequestId: a43e3f4d-51d0-492e-bd42-ca53e94d0023 Процесс завершен до завершения запроса"

samiksha p 08.04.2019 08:13

Где я должен указать код регулярного выражения... в моем коде... пожалуйста, помогите мне

samiksha p 08.04.2019 08:15

используйте вашу переменную для получения emailID. Я использовал общее имя event.emailId, здесь вы должны использовать свой var.

Atul Kumar 08.04.2019 08:15

Я, сэр... я получаю правильное имя пользователя... в моем журнале... но мне нужно, чтобы я передал только имя, извлеченное из электронной почты, в базу данных динамо, чтобы получить все повторяющиеся электронные письма... .Как я могу это сделать

samiksha p 08.04.2019 08:24

В моем коде в theExpressionAttributeValues ​​: { ':val' : val } вместо val... если передается какое-то конкретное имя, например pavi... оно дает все повторяющиеся электронные письма, такие как [email protected], pavi2@gmail. ком

samiksha p 08.04.2019 08:27

Как вы предполагаете получить имя из имени пользователя? Имя пользователя может быть любой комбинацией. Если вам нужно имя, вы должны попросить пользователя указать свое имя. @Samiksha, тебе нужно подумать о своем дизайне.

Atul Kumar 08.04.2019 08:27

Мне нужно найти повторяющиеся электронные письма... поэтому я извлекаю имя из электронной почты.

samiksha p 08.04.2019 08:28

user emailID может быть любым, даже не обязательно иметь имя. Если вам нужно имя, спросите пользователя. EmailID не содержит имени.

Atul Kumar 08.04.2019 08:30

Большое спасибо, сэр ... за помощь мне

samiksha p 08.04.2019 08:32

Другие вопросы по теме