Результат
У этой страницы вообще нет серверной части. Вставленная таблица разбирается кодом JavaScript внутри вашего же браузера, график рисуется на элементе canvas на вашей машине, файл экспорта собирается локально. Ничего не загружается, не хранится и не пишется ни в какие логи. После загрузки страницы можно отключить сеть — всё продолжит работать, и это самый простой способ проверить обещание самостоятельно.
Факты и границы применимости
| Извлекается | Только цифры 0-9 |
|---|---|
| Отбрасывается | Буквы, пунктуация, пробелы (если не включено сохранение) и любые прочие символы |
| keepSpaces выключено (по умолчанию) | Все цифры склеиваются в одну непрерывную строку без разделителей |
| keepSpaces включено | Исходные пробелы между группами цифр сохраняются, схлопываются до одиночных, края обрезаются |
| Полноширинные цифры | 0-9 и подобные вне диапазона 0-9 — не извлекаются |
| Обработка | Выполняется локально в браузере, ничего не отправляется на сервер |
Когда этот метод вводит в заблуждение
- Извлекаются только обычные ASCII-цифры 0-9. Полноширинные цифры (0-9), верхние/нижние индексы (², ₃) и цифры других систем счисления находятся вне этого набора и молча отбрасываются вместе с буквами и пунктуацией.
- При выключенном сохранении пробелов все группы цифр склеиваются в одну непрерывную строку: «+7 (495) 123-45-67 доб. 89» превращается в «74951234567 89», теряя всякое указание, где заканчивалось одно число и начиналось другое. Не используйте этот режим, если нужно различать отдельные числа.
- При включённом сохранении пробелов сохраняются только исходные одиночные пробелы между группами цифр (схлопнутые до одного каждый, края обрезаны) — это примерно сохраняет места, где числа были разделены пробелом, но не другой пунктуацией вроде дефисов или точек, поскольку эти символы отбрасываются полностью, а не трактуются как разделители.
- Десятичные числа теряют разделитель: «3.14» становится «314» в любом случае, поскольку точка — это пунктуация и отбрасывается вместе со всем остальным нецифровым. Восстановить исходную позицию десятичной точки из вывода, содержащего только цифры, невозможно.
Как это считается
При выключенном «сохранять пробелы» инструмент выполняет text.replace(/\D/g, "") — удаляя каждый символ, не являющийся цифрой, — оставляя одну непрерывную строку из всех найденных цифр в их исходном порядке.
При включённом «сохранять пробелы» инструмент сначала удаляет всё, кроме цифр и пробельных символов, затем схлопывает любую серию оставшихся пробелов до одного и обрезает края — так что группы цифр, изначально разделённые пробелом, остаются визуально разделены, а прочая пунктуация между ними не сохраняется.
В любом случае цифрами считаются только десять ASCII-символов 0-9. Буквы, пунктуация, символы и нецифровые Unicode-формы отбрасываются независимо от настройки пробелов.
«Найдено цифр» считает цифровые символы в итоговом результате — это равно общему числу символов 0-9 в исходном тексте, поскольку цифры никогда не удаляются после совпадения, только перестраиваются относительно пробелов.
Вопросы и ответы
Что именно сохраняет опция «сохранять пробелы»?
Только пробелы — пробельные символы, изначально разделявшие группы цифр. Дефисы, точки, скобки и прочая пунктуация между цифрами всегда отбрасываются, независимо от этой опции.
Можно ли использовать это, чтобы достать номер телефона из предложения?
Да — инструмент извлечёт «сырые» цифры, но уберёт форматирование (дефисы, скобки, знак плюс). При включённом сохранении пробелов сохранится примерная группировка, если в исходнике были пробелы; без него всё склеится в одну строку.
Извлекаются ли полноширинные или верхнеиндексные цифры?
Нет, только обычные ASCII 0-9. Полноширинные цифры (0-9) и формы верхнего/нижнего индекса находятся вне этого набора и отбрасываются, а не извлекаются.
Что происходит с несколькими отдельными числами в тексте?
Без сохранения пробелов они сливаются в одну строку без возможности различить их. При включённом сохранении они остаются разделены там, где в исходном тексте между ними был пробел.
Мой текст куда-то отправляется?
Нет. Вся операция выполняется в вашем браузере, текст никуда не передаётся.