Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.01.2009, 18:42
Интересующийся
Отправить личное сообщение для vovasvv Посмотреть профиль Найти все сообщения от vovasvv
 
Регистрация: 01.11.2008
Сообщений: 14

вопрос по Regexp
Доброго времени суток!

Рассматриваю названия файлов

К примеру у меня есть 2 выражения
1-ое: [\+=\\]+
2-ое: \.(JPG)$

Как составить выражение:

Отобрать только те, в названиях которых до ТОЧКИ - содержится любой из символов + = \ ,после ТОЧКИ с любым расширением КРОМЕ JPG

Знаю что ИСКЛЮЧЕНИЕ работает так [^\+=\\], а вот с круглыми скобками оно работает? (^jpg) - это правильно???? Если нет, то как правильно?
И вообще с точки зрения "граматики" - корректно ли составлять выражение, одна часть которого ищет символы, которые могут находиться в выражении, а вторая - наоборот, ищет символы которые НЕ могут?

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 21.01.2009, 19:14
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

/[+=\\].*\.(?!jpg$)/
Ответить с цитированием
  #3 (permalink)  
Старый 21.01.2009, 19:31
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 03.04.2008
Сообщений: 6,234

vovasvv,
прочитайте где-нибудь подробный мануал по регуляркам.
у вас в голове каша, которую надо убрать, и изучить более систематизированно этот вопрос
Ответить с цитированием
  #4 (permalink)  
Старый 21.01.2009, 22:39
Интересующийся
Отправить личное сообщение для vovasvv Посмотреть профиль Найти все сообщения от vovasvv
 
Регистрация: 01.11.2008
Сообщений: 14

to Kolyaj
Если можно, то для тех кто на бронепоезде:
[+=\\] - вопросов нет -сам писал, далее
Точка - любой символ, далее
звездочка - ноль или более повторений [+=\\]. , далее
\. - прописной символ . - означает точку в тексте, далее
?!jpg$ - все это: а именно [+=\\].*\. наедется если в конце НЕ будет стоять jpg

Наверное я с самого начала некорректно сформулировал задачу.
Она такова:
есть инпут типа файл, я ставлю проверку
- не хочу чтобы в названии файла содержались символы
-хочу чтобы загружали файлы с расширением jpg

Таким образом если я вас правильно понял, то выражение /[+=\\].*\.(?!jpg$)/ не ловит случай, когда файл будет с расширением jpg, НО при этом будет содержать символы - правильно?

to Gvozd: Вы совершенно правы. Как только появится время, обязательно займусь, но пока вынужден пользоваться благами цивилизации и не гнушаюсь запросами вопрос-ответ.
Ответить с цитированием
  #5 (permalink)  
Старый 21.01.2009, 23:03
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Это
Сообщение от vovasvv
- не хочу чтобы в названии файла содержались символы
-хочу чтобы загружали файлы с расширением jpg
противоречит этому
Сообщение от vovasvv
Отобрать только те, в названиях которых до ТОЧКИ - содержится любой из символов + = \ ,после ТОЧКИ с любым расширением КРОМЕ JPG
Уж определитесь с задачей.
Ответить с цитированием
  #6 (permalink)  
Старый 21.01.2009, 23:10
Интересующийся
Отправить личное сообщение для vovasvv Посмотреть профиль Найти все сообщения от vovasvv
 
Регистрация: 01.11.2008
Сообщений: 14

Определился - в начале перемудрил.Конечная задача:
не хочу чтобы в названии файла содержались символы
-хочу чтобы файлы содержали ТОЛЬКО расширение jpg|jpeg|JPG|JPEG

Очень хочу чтобы это было в одном выражении (все...больше ничего не хочу ). Еще раз спасибо за будущий ответ!

Последний раз редактировалось vovasvv, 21.01.2009 в 23:13.
Ответить с цитированием
  #7 (permalink)  
Старый 21.01.2009, 23:18
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

/^[^+=\\]+\.jpe?g$/i
Ответить с цитированием
  #8 (permalink)  
Старый 21.01.2009, 23:47
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

вообще-то тебе должно хватить
/\.jpe?g$/i
зачем тебе запрешать пользователю использовать символы?
однажды сам на такое наткнешься и прийдется файл переименовывать
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 13:06
вопрос по ready PaCo jQuery 1 28.12.2008 19:19
RegExp & Mozilla (быстродействие) tau Общие вопросы Javascript 9 24.11.2008 15:35
вопрос по long poll megaswin AJAX и COMET 2 27.05.2008 08:20
RegExp и unicode Yury900 Общие вопросы Javascript 7 12.05.2008 23:19