Установка состояния с помощью регулярных выражений - PullRequest
0 голосов
/ 31 января 2020

У меня есть значение 64-битного закодированного изображения как Object { photo: "/9j/...Q==" }, но я хотел бы использовать регулярное выражение только для получения значения внутри "". Не только это, но у меня есть это значение в качестве значения состояния (this.state.profilePhoto = Object { photo: "/9j/...Q==" }). Я пытаюсь использовать регулярное выражение, чтобы отфильтровать фактическое значение, которое я хочу, и заменить состояние новым, правильным значением. Это то, что у меня есть, но, похоже, оно не работает, так как возвращает реальное выражение регулярного выражения.

const regex = /(.*)/;
const photo = //some get request
this.setState({ profilePhoto: photo});
this.setState({profilePhoto: regex});

Когда я регистрирую вывод состояния profilePhoto на консоль, я получаю /(["'])(?:(?=(\\?))\2.)*?\1/; вместо число внутри кавычек.

1 Ответ

0 голосов
/ 31 января 2020

В фрагменте кода вы фактически не применили RegEx к значению photo. Если бы photo была строкой, вы бы хотели изменить что-то вроде этого:

const regex = /(.*)/;
const photo = //some get request
const filteredValue = photo.match(regex)
this.setState({ profilePhoto: filteredValue });

Тем не менее, в вашем вопросе кажется, что фотография - это просто объект, и вы просто хотите получить значение ключ photo внутри него? Если вы просто хотите, чтобы фотография была строкой, а не объектом, вы должны использовать:

const photo = //some get request
// Pull the photo key from the photo Object, renaming to photoString
const { photo: photoString } = photo
this.setState({ profilePhoto: photoString });

Ссылки:

  1. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...