|
Автор |
Сообщение |
den
Старожил
Зарегистрирован: 31.01.2006 Сообщения: 13870 Откуда: Кировоград, Украина
|
|
|
|
Появилась необходимость удалить все пробелы в числовых полях. Например, когда цену вводят не 10000, а 10 000.
Вот пример кода:
$price=str_replace(" ", "", $price); //Удаляем обычные пробелы
$price=str_replace(chr(160), "", $price); //Удаляем неразрывные пробелы
Аналогично можно удалять и "-" в номерах телефонов, хотя для этого лучше использовать regexp, потому что введенное может быть даже совсем не похоже на номер телефона. |
|
Вернуться к началу |
dhsilabs@jabber.ru |
|
|
ubuntol
Участник тусовки
Зарегистрирован: 15.02.2010 Сообщения: 137
|
|
|
|
den писал(а): |
Появилась необходимость удалить все пробелы в числовых полях. Например, когда цену вводят не 10000, а 10 000.
Вот пример кода:
$price=str_replace(" ", "", $price); //Удаляем обычные пробелы
$price=str_replace(chr(160), "", $price); //Удаляем неразрывные пробелы
Аналогично можно удалять и "-" в номерах телефонов, хотя для этого лучше использовать regexp, потому что введенное может быть даже совсем не похоже на номер телефона. |
что-то никто не комментирует... давай я поддержу -
обобщаем задачу Дена, не только пробелы и знаки - а удаляем вообще всякие знаки из строки кроме цифирь... на РНР Ден начал решение, вот решение общей задачи на Питоне
------------------------------------
#!/usr/bin/python
import re
s="po io8pi98;5m1 26---00j2*j7!"
z=re.findall(r"[0-9]", s)
zz=map(lambda x:int(x,10),z)
result=""
for element in zz:
result=result + `element`
print result
-------------------------------------
в ответе будет 89851260027
просим продолжить - дать решение на Си, ассемблере (gas, masm) и в машинных кодах...
- код получился с ошибкой - не отображается отступ в предпоследней строке..., как заделать отступ в форуме???
Последний раз редактировалось: ubuntol (Ср Мар 03, 2010 9:41 pm), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
Madfisht3
Участник тусовки
Зарегистрирован: 12.02.2010 Сообщения: 101 Откуда: Russia
|
|
|
|
Цитата: |
$price=str_replace(" ", "", $price); |
примерно по такому же принципу в молодости я написал скрипт транслиптации _________________
|
|
Вернуться к началу |
|
|
ubuntol
Участник тусовки
Зарегистрирован: 15.02.2010 Сообщения: 137
|
|
|
|
Madfisht3 писал(а): |
Цитата: |
$price=str_replace(" ", "", $price); |
примерно по такому же принципу в молодости я написал скрипт транслиптации |
о.., а что это "транслиптация"? |
|
Вернуться к началу |
|
|
Madfisht3
Участник тусовки
Зарегистрирован: 12.02.2010 Сообщения: 101 Откуда: Russia
|
|
|
|
Транслитация это
к примеру из слова "собака" нужно сделать "sobaka", этот скрипт это и делал. _________________
|
|
Вернуться к началу |
|
|
ubuntol
Участник тусовки
Зарегистрирован: 15.02.2010 Сообщения: 137
|
|
|
|
Madfisht3 писал(а): |
Транслитация это
к примеру из слова "собака" нужно сделать "sobaka", этот скрипт это и делал. |
понял, по транслитации - это, вообще, перекодировка (я про tr вспомнил как раз) и не только собак -
есть в Юниксе tr - стандартная команда оболочки
$ tr 'A' s < file
она здесь в файле file заменяет все буквы А на букву s
вот так она заменяет все большие буквы на маленькие
$ cat file | tr '[A-Z]' '[a-z]' > filenew
cat - открывает файл, | - передает результат следующей команде, то есть tr, [A-Z] - это краткая запись 26 букв алфавита (регулярное выражение) , > - указывает, что результат надо вывести в новый файл (или она накроет имеющийся с таким названием) , значит ты переписал утилиту UNIX-a, да, круто было...
Впрочем, в Питоне средства со строками дают возможность быстро скрипт написать... , но нам надо сперва на си Денин скрипт сделать!
Последний раз редактировалось: ubuntol (Ср Мар 03, 2010 10:06 pm), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
Madfisht3
Участник тусовки
Зарегистрирован: 12.02.2010 Сообщения: 101 Откуда: Russia
|
|
|
|
Цитата: |
есть в Юниксе tr - стандартная команда оболочки
$ tr 'A' s < file
она здесь в файле file заменяет все буквы А на букву s
вот так она заменяет все большие буквы на маленькие
$ cat file | tr '[A-Z]' '[a-z]' > filenew
cat - открывает файл, | - передает результат следующей команде, то есть tr, [A-Z] - это краткая запись 26 букв алфавита (регулярное выражение) , > - указывает что результат надо вывести в новый файл (или она накроет имеющийся с таким названием) , значит ты переписал утилиту UNIX-a, да, круто было... |
Скрипт работал в windows. _________________
|
|
Вернуться к началу |
|
|
ubuntol
Участник тусовки
Зарегистрирован: 15.02.2010 Сообщения: 137
|
|
|
|
[quote="Madfisht3"]
Цитата: |
...
Скрипт работал в windows. |
по моему в Windows в командной строке есть аналог tr! ща посмотрю... там же тоже оболочка, это ты в ней писал наверное...
не сразу не нашел..., может позже или кто поможет
Последний раз редактировалось: ubuntol (Ср Мар 03, 2010 9:53 pm), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
Madfisht3
Участник тусовки
Зарегистрирован: 12.02.2010 Сообщения: 101 Откуда: Russia
|
|
|
|
Цитата: |
ща посмотрю... там же тоже оболочка, это ты в ней писал наверное... |
На PHP я писал. И в джентельменском наборе запускал Куда нам джентельменам без своих скриптов _________________
|
|
Вернуться к началу |
|
|
ubuntol
Участник тусовки
Зарегистрирован: 15.02.2010 Сообщения: 137
|
|
|
|
Madfisht3 писал(а): |
Цитата: |
ща посмотрю... там же тоже оболочка, это ты в ней писал наверное... |
На PHP я писал. И в джентельменском наборе запускал Куда нам джентельменам без своих скриптов |
я избрал питон - он везде силен для сисадмина, а PHP все-таки заточен под Веб...
ну если на PHP, то что в винде, что в юниксе - разницы же нет... |
|
Вернуться к началу |
|
|
|
|
 Главная страница сайта
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|