Результат
Все вычисления выполняются локально в браузере: разбор, график, экспорт. Если отключите сеть, страница продолжит работать.
Факты и границы применимости
| Извлекается | Только цифры 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) и формы верхнего/нижнего индекса находятся вне этого набора и отбрасываются, а не извлекаются.
Что происходит с несколькими отдельными числами в тексте?
Без сохранения пробелов они сливаются в одну строку без возможности различить их. При включённом сохранении они остаются разделены там, где в исходном тексте между ними был пробел.
Мой текст куда-то отправляется?
Нет. Вся операция выполняется в вашем браузере, текст никуда не передаётся.