Регулярные Выражения. В строке только цифры
Добавлено через 16 минут
Как это часто бывает, стоило задать вопрос на форуме, тут же доходит где ошибся.
Не надо в шаблон вставлять исходную строку и слэш / нужен в ява-скрипт (пример брал оттуда), в 1с без него
Вопрос закрыт.
Добавлено через 2 часа 46 минут
Если кто-то заинтересуется. Код для проверки, что в строке только цифры:
Регулярные выражения — вывод сообщения об ошибке при нахождении в строке выражения, начинающегося с цифры
Нужно чтобы при нахождении в строке выражения начинающегося с цифры появлялось сообщение об.
Регулярные выражения. Выделить только цифры кроме букв и (_) до и после
Здравствуйте! Подскажите, пожалуйста, как правильно составить регулярное выражение, чтобы.
Регулярные выражения. Оставить в строке только буквы и цыфры
Здравствуйте. Помогите, пожалуйста, решить проблему. В строке нужно оставить только латинские буквы.
Регулярные выражения. Требуется оставить в строке только буквы
Требуется оставить в строке только буквы, вариант решения такой: Re = /()/g; S =.
Dethmontt, С крутизной согласен. Почитал форум по регэксп, есть мастера творящие просто чудеса. А вот с вашим решением по "только цифры" не согласен. Такой код, например, строку "10 негритят" вернет как истина, хотя в строке не только цифры. Как понял: /d
Цифры, + до конца строки. Для НЕ многострочного текста подойдет ^/d+ (с начала сроки по ее конец цифры). А учесть возможность многострочности — $
Добавлено через 4 минуты
Неправильный пример. Правильно "негритят 10"
_ЕГОР_, Должно быть так (за одно и проверим ))) )
^(/d*[а-яА-Я]* *)$
^ — с начала строки
/d — цифры
* — может быть от одного знака до любого количества, но может и не быть ни одного (действует к символу перед ним, в примере — это цифры
[а-яА-Я] — все буквы русского алфавита строчные и прописные
* — то же, но стоит после букв, действует для букв
пробел — в строке могут быть пробелы
* — то же, но стоит после пробела, действует для пробела
$ — конец строки
Читается примерно так:
Сначала и до конца строки могут быть цифры или любые буквы от ни одного до любого количества знаков, так же в строке могут быть (а могут и не быть) пробелы.
Такое написание не пропустит ни одного знака препинания, спец знаки, кавычки. английские буквы и т.п. Если что-то из этого разрешено. нужно дополнительно включить в квадратных скобках. Что-то типа
[а-яА-Я.,]
Добавлено через 19 минут
_ЕГОР_, Написал и понял, что спрашивают о другом ))) Удалить из строки все кроме букв и цифр. Так, наверное, задача стоит?
Ищем все знаки в строке отличные от цифр, букв русского и английского алфавитов и пробелов. И меняем все найденные значения на пробел.
Добавлено через 1 минуту
Все можно сделать и кодом 1с, но насколько изящнее и короче выглядит код в рег выражениях )))
Проверить, что в строке только цифры
Если НЕ УчитыватьЛидирующиеНули Тогда
НомерПервойЦифры = 0;
Для а = 1 По СтрДлина(СтрокаПроверки) Цикл
НомерПервойЦифры = НомерПервойЦифры + 1;
КодСимвола = КодСимвола(Сред(СтрокаПроверки, а, 1));
Если КодСимвола <> 48 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
СтрокаПроверки = Сред(СтрокаПроверки, НомерПервойЦифры);
КонецЕсли;
Для а = 1 По СтрДлина(СтрокаПроверки) Цикл
КодСимвола = КодСимвола(Сред(СтрокаПроверки, а, 1));
Если НЕ (КодСимвола >= 48 И КодСимвола <= 57) Тогда
Возврат Ложь;
КонецЕсли;
КонецЦикла;
Оставляем только числа
С последними нововведениями в учете в стандартных конфигурациях оказалась востребованной возможность программы автоматически очищать строку символов от знаков, не являющихся цифрами: в новой налоговой накладной, в печатной форме, выводятся номера телефонов, для этих номеров предусмотрены 10 клеток, в которые вносятся цифры, по одной в каждую клетку. Как правило, в справочнике, номера телефонов записаны так, как это обычно принято – с разделением на код в скобках и номер, часто номер разделен на группы через тире. Когда номер телефона выводится на печатную форму программа просто берет подряд первые 10 символов из строки с номером и расставляет символы по клеткам. Можно, конечно, сказать пользователям, чтобы привели все номера в базе к виду без скобок тире и прочих ненужных символов, но тогда в других местах, где удобнее было-бы читать “нормальный” номер будет выводится уже исправленный и неудобочитаемый.
Верное, программное решение: добавить функцию, выдающую строку, полученную из исходной путем удаления нечисловых символов. Алгоритм простой – посимвольно перебирать исходную строку, символы проверять числовой или нет, числовые копировать в новую строку, нечисловые пропускать. Один из вариантов функции (для платформы 1С версии 7.7):
Имея такую функцию можно легко извлекать из любой строки последовательность чисел и радовать пользователей чудесами автоматизации.
Diachok’s IT blog
Возникла ситуация, когда необходимо преобразовать в число любую строку из 1с или другого com объекта (excel,word и т.п.) при чем строки могут быть разные и содержать разные данные, функция написана, что бы быстро преобразовать в число.
Функция ВернутьЧисло(Знач ВхСтрока)
Если ТипЗнч(ВхСтрока) = Тип(«Число») Тогда
Возврат ВхСтрока;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ВхСтрока) Тогда
Возврат 0;
КонецЕсли;
Если ТипЗнч(ВхСтрока) <> Тип(«Строка») Тогда
Возврат 0;
КонецЕсли;