Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regexp-Alternation: task3: Открывающая кавычка не экранируется #1355

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

Batmaev
Copy link

@Batmaev Batmaev commented Jul 21, 2021

Задача:

Найти строки в двойных кавычках, причём строки должны поддерживать экранирование с помощью обратного слеша

Авторское решение проверяет, что закрывающая кавычка не экранирована. Но открывающую кавычку оно не проверяет.

Наверное, это потому, что если обратный слеш стоит перед открывающей кавычкой, то он как бы находится вне строки и не способен экранировать.

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

@javascript-translate-bot javascript-translate-bot added the review needed Review needed, please approve or request changes label Jul 21, 2021
@javascript-translate-bot javascript-translate-bot requested a review from a team July 21, 2021 21:16
@CLAassistant
Copy link

CLAassistant commented Jul 21, 2021

CLA assistant check
All committers have signed the CLA.

@iliakan
Copy link
Member

iliakan commented Nov 1, 2021

Строка str становится сложноватой, может быть разбить тест на несколько?

@iliakan iliakan added the changes requested Waiting for changes and /done from PR author label Nov 1, 2021
@Batmaev
Copy link
Author

Batmaev commented Nov 9, 2021

Вы правы. Сейчас сделаю

@iliakan
Copy link
Member

iliakan commented Feb 3, 2022

Ошибка. Двойная кавычка после обратного слеша НЕ может начинать строку.

@Batmaev
Copy link
Author

Batmaev commented Feb 3, 2022

Может:

let regexp = /"(\\.|[^"\\])*"/g;  // Ваше решение

let str = ' .. \\"a"  .. ';       // Поставим обратный слэш перед открывающей кавычкой

alert( str.match(regexp) );       //  "a"  //  всё ещё сопоставляется

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changes requested Waiting for changes and /done from PR author review needed Review needed, please approve or request changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants