Как использовать обрезку в URL-адресе выборки

Как получить код проверки, здесь я пытаюсь выполнить следующее регулярное выражение с помощью обрезки, но появляется сообщение об ошибке «Ошибка типа: не удается прочитать свойства неопределенного (чтение« обрезки »)»

И я просто хочу получить код подтверждения, как на картинке

my code 
const checkInboxUrl = 'https://getnada.com/api/v1/inboxes/';
const getMessageUrl = 'https://getnada.com/api/v1/messages/html/';
const refreshMailboxUrl = 'https://getnada.com/api/v1/u/';

/* eslint-disable no-unused-vars */

class Getnada {
  constructor() {
    this.email = '';
    this.verificationCode = '';

  }

  async getEmail(email = 'urmxhbwrz@getnada.com') {
      this.email = email;
    return this;
  }

  async getMailbox(pattern, sleepTime = 5000) {
    await sleep(sleepTime);
    const timestamp = Math.floor(new Date().getTime() / 1000);
    const refreshMailboxResponse = await fetch(refreshMailboxUrl + this.email + '/' + timestamp);
    const checkInboxResponse = await fetch(checkInboxUrl + this.email);
    const checkInboxJson = await checkInboxResponse.json();
    const getMessageResponse = await fetch(getMessageUrl + checkInboxJson.msgs[0].uid);
    const readInbox = await getMessageResponse.text();
    const regex = new RegExp(pattern);
    const verificationCodeMatch = regex.exec(readInbox);
    this.verificationCode = verificationCodeMatch[1].trim();
    console.info(verificationCodeMatch)
    return this;
  }
  
}
const getnada = new Getnada();
async function main() {
  console.info((await getnada.getEmail()))
  console.info((await getnada.getMailbox()))
}
main();

Https://getnada.com/api/v1/messages/html/8lra5CwOQcHvja3mpQZgO7G5RPTS3W

Вы не передаете шаблон для вызова getMailbox

Fcmam5 20.02.2023 00:30

Извините, я не знаю, как @Fcmam5

Alma Muhamad Apriana 20.02.2023 00:37

Вы должны добавить что-то к своему вызову функции: console.info((await getnada.getMailbox(SOMETHING))) И это SOMETHING то, что вы хотите проанализировать со страницы.

Fcmam5 20.02.2023 00:43
Калькулятор CGPA 12 для семестра
Калькулятор CGPA 12 для семестра
Чтобы запустить этот код и рассчитать CGPA, необходимо сохранить код как HTML-файл, а затем открыть его в веб-браузере. Для этого выполните следующие...
Как собрать/развернуть часть вашего приложения Angular
Как собрать/развернуть часть вашего приложения Angular
Вам когда-нибудь требовалось собрать/развернуть только часть вашего приложения Angular или, возможно, скрыть некоторые маршруты в определенных средах?
Оптимизация React Context шаг за шагом в 4 примерах
Оптимизация React Context шаг за шагом в 4 примерах
При использовании компонентов React в сочетании с Context вы можете оптимизировать рендеринг, обернув ваш компонент React в React.memo сразу после...
Интервьюер: Почему '[] instanceof Object' возвращает "true"?
Интервьюер: Почему '[] instanceof Object' возвращает "true"?
Все мы знаем, что [] instanceof Array возвращает true, но почему [] instanceof Object тоже возвращает true?
Абстрактное синтаксическое дерево (AST) и как оно работает с ReactJS
Абстрактное синтаксическое дерево (AST) и как оно работает с ReactJS
Абстрактное синтаксическое дерево (AST) - это древовидная структура данных, которая представляет структуру и иерархию исходного кода на языке...
0
3
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Чтобы получить код подтверждения, вы можете попробовать изменить эти строки:

const regex = new RegExp(pattern);
const verificationCodeMatch = regex.exec(readInbox);
this.verificationCode = verificationCodeMatch[1].trim();

К :

const verificationCodeMatch = pattern.exec(readInbox);
this.verificationCode = verificationCodeMatch[0].trim();

И также измените эту строку:

console.info((await getnada.getMailbox()))

К :

console.info((await getnada.getMailbox(/\b\d{6,6}\b/)));

Это регулярное выражение /\b\d{6,6}\b/ будет отфильтровывать строки, содержащие ровно 6 цифр чисел, которые являются проверочным кодом.

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