Php удаляем все кроме цифр

Содержание
  1. Как удалить все буквы, цифры и спецсимволы в строке на PHP/JavaScript?
  2. Как удалить все буквы, цифры и спецсимволы в строке на PHP?
  3. Как удалить все буквы, цифры и спецсимволы в строке на JavaScript?
  4. Удаление регулярными выражениями в PHP
  5. Текст и символы
  6. Удалить все пробелы
  7. Удалить двойные пробелы
  8. Удалить лишние пробелы перед знаками препинания
  9. Оставить в тексте только буквы, цифры и пробел
  10. Удалить цифры
  11. Удалить латинские буквы
  12. Удалить русские буквы
  13. Удалить все буквы и цифры
  14. Удалить все кроме цифр и пробелов
  15. Удалить табуляцию
  16. Удалить переносы строк
  17. Удалить определенное количество символов
  18. Удалить текст до определенного символа
  19. Удалить текст после символа
  20. Удалить скобки с их содержимым
  21. Комментарии
  22. Удалить комментарии из HTML
  23. Удаление многострочных комментариев «/* . */»
  24. Удалить комментарии «//» и «#»
  25. Комментарии SQL « —. »
  26. Нумерация строк
  27. Хештеги
  28. Php удаляем все кроме цифр
  29. Список изменений
  30. User Contributed Notes 15 notes

Как удалить все буквы, цифры и спецсимволы в строке на PHP/JavaScript?

Этот своего рода вариант обрезки строки будет полезен, когда вы хотите получить информацию в определенном виде. Например, ник пользователя может быть только из букв, когда как его возраст – указывается числом.

Тому, как можно решить поставленные задачи, и посвящена эта статья.

Как удалить все буквы, цифры и спецсимволы в строке на PHP?

В PHP для удаления нужных символов мы воспользуемся функцией «preg_replace», с помощью которой по регулярному выражению найдем и удалим нужные нам символы.

Реализация для удаления всех букв:

Реализация для удаления всех цифр:

Реализация для удаления спецсимволов:

 ', '|', ':', '"', '', '?', '[', ']', ';', "'", ',', '.', '/', '', '~', '`', '='); $new_content = str_replace($code_match, '', $content); echo $new_content; // Выведет "12 Hello 3 world 45" ?>

В таком случае удаляются символы «! @ # $ % ^ & * ( ) _ + < >| : » ? [ ] ; ‘ , . / — ~ ` =».

Читайте также:  Ширина макета

Как удалить все буквы, цифры и спецсимволы в строке на JavaScript?

В JavaScript мы воспользуемся аналогичной функцией «replace», с помощью которой также по регулярному выражению удалим нужные нам символы.

Реализация для удаления всех букв:

   

Реализация для удаления всех цифр:

   

Реализация для удаления спецсимволов:

   

Если вдруг при использовании какого-либо способа у вас возникают трудности – пишите об этом в комментариях.

Источник

Удаление регулярными выражениями в PHP

Примеры регулярных выражений для удаления данных из текста.

Текст и символы

Удалить все пробелы

$text = 'a b c d e'; $text = mb_ereg_replace('[\s]', '', $text); echo $text; // abcde

Удалить двойные пробелы

$text = 'a b c d e'; $text = mb_ereg_replace('[ ]+', ' ', $text); echo $text; // a b c d e

Удалить лишние пробелы перед знаками препинания

$text = 'Многие ! известные ? личности , и по сей день .'; echo preg_replace("/\s+([\.|,|!|\?]+)/", '\\1',$text);
Многие! известные? личности, и по сей день.

Оставить в тексте только буквы, цифры и пробел

$text = 'Многие известные. личности, по: сей день.'; echo mb_eregi_replace("[^a-zа-яё0-9 ]", '', $text);
Многие известные личности по сей день

Удалить цифры

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789'; echo mb_eregi_replace('7', '', $text);
абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz

Удалить латинские буквы

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789'; echo mb_eregi_replace('[a-z]', '', $text);
абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789

Удалить русские буквы

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789'; echo mb_eregi_replace('[а-яё]', '', $text);

Удалить все буквы и цифры

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789 . '; echo mb_eregi_replace('[\w]', '', $text);

Удалить все кроме цифр и пробелов

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789 . '; echo mb_eregi_replace('[^0-9 ]', '', $text);

Удалить табуляцию

Удалить переносы строк

echo preg_replace("/[\r\n]/", '', $text);

Удалить определенное количество символов

Примеры удаляют девять символов в начале и конце текста.

// Удаление с начала $text = mb_eregi_replace("^.(.*)$", '\\1', $text); echo $text; // Удаление с конца $text = mb_eregi_replace("(.*)[^.]$", '\\1', $text); echo $text;

Удалить текст до определенного символа

Данные регулярные выражения удаляют все что находится до первого искомого символа, а также пробел который идет за ним.

$text = 'Многие известные. личности, по: сей - день.'; // Удалить до пробела echo preg_replace("/^(.*?)(\s)(.*?)$/", '\\3', $text); // Удалить до "." echo preg_replace("/^(.*?)(\.\s)(.*?)$/", '\\3', $text); // Удалить до "," echo preg_replace("/^(.*?)(,\s)(.*?)$/", '\\3', $text); // Удалить до ":" echo preg_replace("/^(.*?)(:\s)(.*?)$/", '\\3', $text); // Удалить до "-" echo preg_replace("/^(.*?)(-\s)(.*?)$/", '\\3', $text);
известные. личности, по: сей - день. личности, по: сей - день. по: сей - день. сей - день. день.

Удалить текст после символа

$text = 'Многие известные. личности, по: сей - день.'; // Удалить после пробела echo preg_replace("/^(.+?)\s.+$/", '\\1', $text); // Удалить после «.» echo preg_replace("/^(.+?)\..+$/", '\\1', $text); // Удалить после «,» echo preg_replace("/^(.+?),.+$/", '\\1', $text); // Удалить после «:» echo preg_replace("/^(.+?):.+$/", '\\1', $text); // Удалить после «-» echo preg_replace("/^(.+?)-.+$/", '\\1', $text);
Многие Многие известные Многие известные. личности Многие известные. личности, по Многие известные. личности, по: сей

Удалить скобки с их содержимым

$text = '(Casio G-SHOCK) [GW-9200-1ER] '; // Удаление (. ) echo preg_replace("/(.*?)\(.*?\)\s?(.*?)/is", '\\1\\3', $text); // Удаление [. ] echo preg_replace("/(.*?)\[.*?\]\s?(.*?)/is", '\\1\\3', $text); // Удаление echo preg_replace("/(.*?)\<.*?\>\s?(.*?)/is", '\\1\\3', $text); // Удаление [. ] echo preg_replace("/(.*?)<.*?>\s?(.*?)/is", '\\1\\3', $text);

Комментарии

Удалить комментарии из HTML

$text = '

Текст текст

'; echo preg_replace('/\s?\s?/', ' ', $text);

Удаление многострочных комментариев «/* . */»

$text = " /** * Описание функции и тд * @param name * @param defaultValue * @returns */ document.write(' '); "; echo preg_replace("/\/\*(.*?)\*\//sm", '', $text);

Удалить комментарии «//» и «#»

$text = " // По возрастанию: ksort($array); # По убыванию: krsort($array);"; $res = preg_replace("/\/\/.*\n/", '', $text); $res = preg_replace("/#.*\n/", '', $res); echo $res;

Комментарии SQL « —. »

$text = " SELECT * FROM `articles` WHERE `name` LIKE '%KEY%' -- OR `title` LIKE '%KEY%' OR `text` LIKE '%KEY%'"; echo preg_replace("/\s--.*\n/", '', $text);
SELECT * FROM `articles` WHERE `name` LIKE '%KEY%' OR `text` LIKE '%KEY%'

Нумерация строк

$text = ' 1 text text text. 2 text text text. 3 text text text. 1. text text text. 2. text text text. 3. text text text. 1) text text text. 2) text text text. 3) text text text.'; echo preg_replace('/(\d)+(\.|\)|\s)+([\s]?)+(.*)/', '\\4', $text);
text text text. text text text. text text text. text text text. text text text. text text text. text text text. text text text. text text text.

Хештеги

$text = 'broken beat, nu jazz, downtempo #nujazz, #downtempo, #intelligent'; echo preg_replace('/#([\S]+)/', '', $text);
broken beat, nu jazz, downtempo 

Источник

Php удаляем все кроме цифр

При использовании одного из этих фильтров в качестве фильтра по умолчанию либо через ваш ini-файл, либо через конфигурацию веб-сервера, флаги по умолчанию установлены в значение FILTER_FLAG_NO_ENCODE_QUOTES . Вам необходимо явно установить параметру filter.default_flags значение 0 для наличия пустых кавычек по умолчанию. К примеру:

Пример #1 Настройка фильтра по умолчанию для работы аналогично функции htmlspecialchars

Список изменений

Версия Описание
8.1.0 Константа FILTER_SANITIZE_STRING и FILTER_SANITIZE_STRIPPED объявлены устаревшими.
8.0.0 Удалена FILTER_SANITIZE_MAGIC_QUOTES .
7.3.0 Добавлена FILTER_SANITIZE_ADD_SLASHES для замены FILTER_SANITIZE_MAGIC_QUOTES
7.3.0 FILTER_SANITIZE_MAGIC_QUOTES объявлена устаревшей.

User Contributed Notes 15 notes

FILTER_SANITIZE_STRING doesn’t behavior the same as strip_tags function. strip_tags allows less than symbol inferred from context, FILTER_SANITIZE_STRING strips regardless.
$smaller = «not a tag < 5" ;
echo strip_tags ( $smaller ); // -> not a tag < 5
echo filter_var ( $smaller , FILTER_SANITIZE_STRING ); // -> not a tag
?>

Remember to trim() the $_POST before your filters are applied:

// We trim the $_POST data before any spaces get encoded to «%20»

// Trim array values using this function «trim_value»
function trim_value (& $value )
$value = trim ( $value ); // this removes whitespace and related characters from the beginning and end of the string
>
array_filter ( $_POST , ‘trim_value’ ); // the data in $_POST is trimmed

$postfilter = // set up the filters to be used with the trimmed post array
array(
‘user_tasks’ => array( ‘filter’ => FILTER_SANITIZE_STRING , ‘flags’ => ! FILTER_FLAG_STRIP_LOW ), // removes tags. formatting code is encoded — add nl2br() when displaying
‘username’ => array( ‘filter’ => FILTER_SANITIZE_ENCODED , ‘flags’ => FILTER_FLAG_STRIP_LOW ), // we are using this in the url
‘mod_title’ => array( ‘filter’ => FILTER_SANITIZE_ENCODED , ‘flags’ => FILTER_FLAG_STRIP_LOW ), // we are using this in the url
);

$revised_post_array = filter_var_array ( $_POST , $postfilter ); // must be referenced via a variable which is now an array that takes the place of $_POST[]
echo ( nl2br ( $revised_post_array [ ‘user_tasks’ ])); //— use nl2br() upon output like so, for the [‘user_tasks’] array value so that the newlines are formatted, since this is our HTML field and we want to maintain newlines
?>

To include multiple flags, simply separate the flags with vertical pipe symbols.

For example, if you want to use filter_var() to sanitize $string with FILTER_SANITIZE_STRING and pass in FILTER_FLAG_STRIP_HIGH and FILTER_FLAG_STRIP_LOW, just call it like this:

$string = filter_var($string, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH | FILTER_FLAG_STRIP_LOW);

The same goes for passing a flags field in an options array in the case of using callbacks.

$var = filter_var($string, FILTER_SANITIZE_SPECIAL_CHARS,
array(‘flags’ => FILTER_FLAG_STRIP_LOW | FILTER_FLAG_ENCODE_HIGH));

Thanks to the Brain Goo blog at popmartian.com/tipsntricks/for this info.

Although it’s specifically mentioned in the above documentation, because many seem to find this unintuitive it’s worth pointing out that FILTER_SANITIZE_NUMBER_FLOAT will remove the decimal character unless you specify FILTER_FLAG_ALLOW_FRACTION:

echo filter_var ( $number_string , FILTER_SANITIZE_NUMBER_FLOAT ); // 1234

echo filter_var ( $number_string , FILTER_SANITIZE_NUMBER_FLOAT , FILTER_FLAG_ALLOW_FRACTION ); // 12.34
?>

It’s not entirely clear what the LOW and HIGH ranges are. LOW is characters below 32, HIGH is those above 127, i.e. outside the ASCII range.

$a = «\tcafé\n» ;
//This will remove the tab and the line break
echo filter_var ( $a , FILTER_SANITIZE_STRING , FILTER_FLAG_STRIP_LOW );
//This will remove the é.
echo filter_var ( $a , FILTER_SANITIZE_STRING , FILTER_FLAG_STRIP_HIGH );
?>

Please be aware that when using filter_var() with FILTER_SANITIZE_NUMBER_FLOAT and FILTER_SANITIZE_NUMBER_INT the result will be a string, even if the input value is actually a float or an int.

Use FILTER_VALIDATE_FLOAT and FILTER_VALIDATE_INT, which will convert the result to the expected type.

Just to clarify, since this may be unknown for a lot of people:

ASCII characters above 127 are known as «Extended» and they represent characters such as greek letters and accented letters in latin alphabets, used in languages such as pt_BR.

A good ASCII quick reference (aside from the already mentioned Wikipedia article) can be found at: http://www.asciicodes.com/

Here is a simpler and a better presented ASCII list for the <32 or 127>filters
(if wikipedia confused the hell out of you):

Источник

Оцените статью