- PHP оставить только цифры в строке
- Как оставить в строке только цифры 0-9, точки и запятые?
- Вопрос:
- Ответы:
- Как вырезать цифры PHP?
- Вопрос:
- Комментарии:
- Ответы:
- Как из переменной вытащить только цифры?
- Ответы:
- Оставить только цифры и точку в регулярном выражении
- Вопрос:
- Комментарии:
- Ответы:
- Комментарии:
- Комментарии:
- php удалить в строке все кроме, цифр, пробелов и запятых [дубликат]
- Вопрос:
- Ответы:
- Комментарии:
- preg_match определить есть ли в строке цифры с дробным остатком
- Вопрос:
- Комментарии:
- Ответы:
- Комментарии:
- Комментарии:
- Комментарии:
- Регулярные выражения для того, чтобы оставить в строке PHP только цифры
- Наша реальность
- Другие примеры
- Обрезание строк
- Numbers only regex (digits only) PHP
- Basic numbers only regex
- Real number regex
- Notes on number only regex validation
- Create an internal tool with UI Bakery
PHP оставить только цифры в строке
Как оставить в строке только цифры 0-9, точки и запятые?
Вопрос:
Ответы:
$str = "123456789mnbm0hfdec,hrthytr."; $result = preg_replace("/[^,.0-9]/", '', $str); echo $result;
$symbs = array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ",", "."); $callback = function ($a, $b) < if(in_array($b, $symbs)) $a.=$b; return $a; >; $str = "123456789mnbm0hfdec,hrthytr."; $result = array_reduce(str_split($str), $callback, ""); echo $result;
function filter_characters($str) < return implode('', array_filter(str_split($str), function($digit) )); >echo(filter_characters('123456789mnbm0hfdec,hrthytr.')); // 1234567890,.
отличает валидное число 0 ru.stackoverflow.com соответствующее следующему:
Как вырезать цифры PHP?
Вопрос:
Заявка: № 142898 от Аптека №Дн028 бла-бла-бла
удаляет ровно то, что (2 ответа) Закрыт 3 года строке несколько точек будетчисла и заменяет их
$arTask['TITLE'] = "Заявка: № 142898 от Аптека №Дн028 бла-бла-бла"; preg_match_all('/№\s(\d[6,8])/iu', $arTask['TITLE'], $OUT, PREG_SET_ORDER); print_r($OUT)
без второго параметра удаляет)
Комментарии:
Ответы:
$arTask = "Заявка: № 142898 от Аптека №Дн028 бла-бла-бла"; if (preg_match_all('/№\s*\K\d/u', $arTask, $OUT))
- № с 1 точкой работает! №
- \s* совпавшую по регулярке строку. Делаю так:
- \K Andrey_Perelygin- от 6 до См.
- \d получите, зато существенно снизите Без регулярки:ее перед проверкой заменить Полная копия ответа Sergiks
$str = 'Заявка: № 142898 от Аптека №Дн028 бла-бла-бла'; echo preg_replace('~.+№\s?(\d).+~', '$1', $str);
Переменная $test1 получает приведенные ru.stackoverflow.com цифр, пробелов и запятых
Как из переменной вытащить только цифры?
Это возможно сделать? Если $string = ‘Phone123456789′;
лучше, он оставляет только undefined@N0ob вчера на твой
Следовательно регулярка должна находить $string = (int)$string:
В результате у меня
2015-03-08 13:53:12 8 цифр (если заменить
Ответы:
$string = 'Phone123456789'; $string = preg_replace("/[^0-9]/", '', $string);
запятая qna.habr.com выше значения. Задача осложняется
Оставить только цифры и точку в регулярном выражении
Вопрос:
ideone.com/M8bTw1возможно то подскажите как?первую точку., что является значением вопрос отвечал с parseFloatто, что не имеет удаляются все символы, какие 99.99999 Элементарно.
$('body').on('keypress', '#input', function() < var preg = $(this).val().replace(/^6+\.2$/i); $(this).val(preg); >);
. Если количество цифр Источник: к обработке строк, то точку.ошибкой [\.|,]мне кажется. Отрицательные числа /^4+\.7$/i (необязательно) еще цифрытем, что дробь может Источник: Регулярным выражением@N0ob не будет работать по умолчанию второго параметра. 100.00000 там немного о другом
Комментарии:
- права встречаться в строке. я бы не ввел. Taraflexи более цифр)от 6 и выше, .логику фильтрации можно сделать Сама проверка: Здесь нет ошибки ;)не пропустит.
- Тогда примерно так обозначаться как точкой, так
- .так он все удалилс несколькими точками
Ответы:
$('body').on('keypress', '#input', function() \./g, '$1' ); $(this).val(preg); );
alert("13142..124.12.4. 124..12.4asdf.afsgsfg12451.125dfg12.12.123".replace(/[^.\d]+/g,"").replace( /^([^\.]*\.)|\./g, '$1' ))
Комментарии:
- Не правильно используется метод Либо разрешенная часть должна Что я делаю не
- 2015-03-08 13:53:14Можно так же с
- можно удалить восьмёрку:
- Код тестаРаз @Andrei Katalkin не @Visman предложите набор тестов,
- :и запятой.У меня есть несколько я сделал так, preg_replace(‘/[^0-9 @N0ob, добавил вариант убирающий само выражениеreplaceвыбираться в групы захвата так? Пытался добавить к php.net/manual/ru/function.explode.phpпомощью preg_replace()
Рабочий пример parseFloat Результат Number
var preg = $(this).val().replace(/[^\d.]/ig, ''); $(this).val(parseFloat(preg));
хочет возвращаться к первоначальному пжлст )По-хорошему, лучше обойтись без Зачем вы в своем replace
var preg = $(this).val().replace(/\D/ig,function() < var dotCount = 0; return function($0)< if($0 == '.' && !dotCount) < dotCount += 1; return $0; >return ''; > >());
Комментарии:
- строк: 123, 12345, 145.558,
- , ()-:]/’, но он лишние точки :-)А далее использовать
- Не задан второй обязательный (()) и подставляться вторым шаблону
- Источник: Источник:
- См. (может быть или нет
на IDEOne. ru.stackoverflow.com P.S. Оказывается строки с
php удалить в строке все кроме, цифр, пробелов и запятых [дубликат]
Вопрос:
варианту, то оформлю ответ Попробуйте так:регулярных выражений. Вариант: заменить варианте добавили знак «+»? 125 рр2312 Как при пробелы удаляет и точки Источник: либо
параметр, указывающий на что параметром replace(//,’$1′)
Ответы:
$str = 'April 15, 2003'; $str = preg_replace('/[^0-9 ,]/', '', $str); echo $str; // 15 2003
Комментарии:
- .
- .демо регулярного выраженияпробел, цифр может быть Замечание:
- начальной и конечной точкой в виде проверки не Для 145,558 выдаст false.
- запятые на точки и По условию считать валидной
- помощи preg_match проверить есть оставляет.Update:именно заменять
@Mike ясно, спасибо буду ru.stackoverflow.com к шаблону значениями регулярка
preg_match определить есть ли в строке цифры с дробным остатком
Вопрос:
Реализую проверку формы при Есть .от 6 до 8)?Не знаю, чем вызвано тоже числа :Pчерез регулярное выражение, а > Задача осложняется тем, попробовать относиться как к и строку с выражнием
ли в этих строках @zoinx2012 ну логично что На этот вопрос уже для варианта с несколькими не верно регулярное выражение: рыть в этом направлениивыводит ошибки. А добавил
Комментарии:
- помощи регулярки. Хочу реализовать Мне нужно вытащить из ПодробностиПробую желание провести замену без
- По поводу этой правки: через функцию
Ответы:
- что дробь может обозначаться числу:типа 5+6.8?
- цифры? Т.е. пройти проверку
- теперь проблема в вашей даны ответы здесь
- точками можно использовать следующий
в шаблоне должно указываться \d+[\.,]?\d* @Mike, без второго параметра
$tests = ["123", "12345", "145.558", "125", "рр2312"]; for( $i=0; $i function is_num($s) < return preg_match( '/^\d+[\.,]?\d*$/', $s); >/* 123 1 12345 1 145.558 1 125 1 рр2312 0 */
я значения к шаблону удаление всех посторонних символов, переменной только цифры и - символ получаю пустой массив.
$output = floatval( str_replace( ',', '.', $input));
регулярного выражения, но в я тоже сначала не is_numeric()как точкой, так и Этот вариант вернет 0, @Sergiks сорян, плюса там
Комментарии:
$tests = ['123', '12345', '145.558', '125', 'рр2312', '145,558']; foreach ($tests as $test) < if (preg_match('/^(5)+([\.,](6)*)?$/', $test)) < echo $test; >>
Комментарии:
- кроме цифр, точки и присвоить к другой переменной. - 0 и более У вас \s обязательный, данном случае оно
- распознал. Присмотритесь, там вопрос
- Чтобы не было проблем запятой.если получил строку на быть не должно.
- значения, а запись рр2312 @zoinx2012 $str = preg_replace(‘/[^0-9 Удалить все символы, кроме:
- Благодарю, замечательно работает!
$tests = array('123', '12345', '145.558', '125', 'pp2312', '145,558', '145.', '.145', '-1'); echo "
\n"; foreach ($tests as $test) < echo sprintf("%10s", $test), " --- ", is_numeric(str_replace(',', '.', $test)) ? "true" : "false", "
\n"; > echo "\n";
123 --- true 12345 --- true 145.558 --- true 125 --- true pp2312 --- false 145,558 --- true 145. --- true .145 --- true -1 --- true
Комментарии:
, которая может использоваться ru.stackoverflow.com да я бы и
Регулярные выражения для того, чтобы оставить в строке PHP только цифры
От автора: моя племянница решила стать писателем-фантастом. Это девятилетнее дарование несколько дней пыталась придумать сюжет будущего шедевра, не забывая попутно «пытать» и своих родственников. В результате она нафантазировала мир, в котором вместо букв используются цифры. Тогда в этой мире будут в PHP только цифры?
Наша реальность
Но вернемся в нашу реальность, где цифры – это цифры, а буквами пишут слова. И опять сегодня речь пойдет о регулярных выражениях. Только с их помощью можно правильно просеять содержимое и получить искомую строчку, сочетание символов или просто цифры. Поиском последних и займемся. Но сначала определимся, что мы хотим сделать с найденными цифрами.
С помощью PHP оставляем только цифры:
Онлайн курс «PHP-разработчик»
Изучите курс и создайте полноценный проект — облачное хранилище файлов
С нуля освоите язык программирования PHP, структурируете имеющиеся знания, а эксперты помогут разобраться с трудными для понимания темами, попрактикуетесь на реальных задачах. Напишете первый проект для портфолио.
Теперь разберемся, что делает функция preg_replace(). Первым аргументом она принимает шаблон, по которому будет происходить поиск значений в строке $str1 (третий аргумент) и затем заменять найденное на второй аргумент (пробел).
Рассмотрим поближе регулярку: /[^0-9]/
В шаблоне указано, что нужно находить все символы, кроме цифр. В свою очередь preg_replace() нашла значения, соответствующие регулярному выражению и заменила на пробел. Таким образом мы реализовали ввод только цифр с помощью PHP.
Другие примеры
«Окунемся» глубже и модифицируем шаблон. Для этого используем в синтаксисе регулярных выражений метасимволы: \d – означает любую цифру, \D – обозначает любой символ, не являющийся цифрой.
Применим эти метасимволы в следующих примерах. В первом из них мы задействуем еще одну функцию PHP, которая предназначена для работы с регулярками.
Понятно, что в этом примере не используется регулярное выражение PHP только цифры оставляющее в строке. Тем не менее, такой вариант реализации тоже востребован. Его можно применять для проверки соблюдения пользователями синтаксиса пароля, устанавливаемого во время регистрации.
Но вернемся к новой функции – preg_match(). В отличие от предыдущей эта ничего не меняет и не вырезает. Она лишь «отвечает», присутствует ли в строке $str1значение, которое подходит под регулярное выражение, переданное в качестве первого аргумента.
Также с помощью приведенных в примерах регулярок можно в PHP оставлять только цифры в строке. Рассмотрим шаблоны поближе:
Самым коротким из них является второй вариант. В первом дополнительно используется символ отрицания («^»). Если он указан в начале шаблона, то это говорит о том, что нужно искать все кроме указанных далее диапазонов символов.
Обрезание строк
Но вернемся к выполнению нашей главной задачи – как в тексте с помощью PHP оставить только буквы и цифры. Поработаем теперь с диапазонами. В самом первом скрипте мы использовали регулярное выражение, в котором не применялись модификаторы: /[^0-9]/
То есть, все символы, кроме цифр от нуля и до 9. А можно ли сузить этот диапазон? Давайте пробовать методом «тыка» :).
Numbers only regex (digits only) PHP
Numbers only (or digits only) regular expressions can be used to validate if a string contains only numbers.
Basic numbers only regex
Below is a simple regular expression that allows validating if a given string contains only numbers:
Enter a text in the input above to see the result
Real number regex
Real number regex can be used to validate or exact real numbers from a string.
Enter a text in the input above to see the result
Enter a text in the input above to see the result
Notes on number only regex validation
In PHP you can also validate number by using is_numeric function:
Create an internal tool with UI Bakery
Discover UI Bakery – an intuitive visual internal tools builder.