en.javascript.info/10-regular-expressions-javascript/6-regexp-greedy-and-lazy/2-difference-find-quote/solution.md
2015-04-07 15:22:06 +03:00

1,007 B
Raw Blame History

Они очень похожи и, да, почти одинаковы. Оба ищут от одной кавычки до другой.

Различие здесь в символе точка '.'. Как мы помним, точка '.' обозначает любой символ, кроме перевода строки.

А [^"] -- это *любой символ, кроме кавычки '"'.

Получатся, что первый регэксп "[^"]" найдёт закавыченные строки с \n внутри, а второй регэксп ".?" -- нет.

Вот пример:

//+ run
alert( '"многострочный \n текст"'.match(/"[^"]*"/) ); // найдёт

alert( '"многострочный \n текст"'.match(/".*?"/) ); // null (нет совпадений)