Javascript.RU

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

Регулярное выражение
Здравствуйте!

Нужно разбить запрос вида (календарь.png,jpg,gif) на две части календарь и png,jpg,gif, я с регулярными выражениями не очень, вот мой вариант, подскажите может можно лучше ?

if ( /\.(.+)/.test(query) ){
     found = query.match(/(.+)\.(.+)/i);
     query = found[1];
     ext = found[2];
}
Ответить с цитированием
  #2 (permalink)  
Старый 16.12.2011, 08:31
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

var s = 'календарь.png,jpg,gif'.split(".");
alert( s[0] );
alert( s[1] );
Ответить с цитированием
  #3 (permalink)  
Старый 16.12.2011, 09:54
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

Точек в запросе может быть несколько, и запрос может быть просто календарь

Тогда наверное так ?

if ( /\.(.+)/.test(query) ){
      var query_part = query.split('.').reverse();
            
      ext = query_part[0].replace(/\s+/g,'');
      query_part.shift();
      query = query_part.reverse().join('.');
}


Может лучше регулярка ?

Последний раз редактировалось Andrei, 16.12.2011 в 10:14.
Ответить с цитированием
  #4 (permalink)  
Старый 16.12.2011, 10:19
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

(/(.+)\.(jpg|gif|png|jpeg)$/i)

В ситаксисе, простите пхп. Знак доллара - конец строки, так как может быть хорощий.календарь.jpg
Ответить с цитированием
  #5 (permalink)  
Старый 17.12.2011, 09:02
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

/(.+)\.(.+)$/i -мне наверное такое пойдет, там много расширений неохота все перебирать. Как указать во второй скобки что любые символы в количестве от 3 до 4 символов?

Последний раз редактировалось Andrei, 17.12.2011 в 09:15.
Ответить с цитированием
  #6 (permalink)  
Старый 17.12.2011, 18:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,125

Сообщение от Andrei
/(.+)\.(.+)$/i -мне наверное такое пойдет, там много расширений неохота все перебирать. Как указать во второй скобки что любые символы в количестве от 3 до 4 символов?
/(.+)\.(.{3,4})$/
Ответить с цитированием
  #7 (permalink)  
Старый 17.12.2011, 22:28
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Andrei,
http://wdh.suncloud.ru/perl04.htm
Ответить с цитированием
  #8 (permalink)  
Старый 18.12.2011, 13:40
Профессор
Отправить личное сообщение для Andrei Посмотреть профиль Найти все сообщения от Andrei
 
Регистрация: 31.10.2009
Сообщений: 151

Всем спасибо, буду пробовать!
Ответить с цитированием
  #9 (permalink)  
Старый 06.01.2012, 22:56
Аспирант
Отправить личное сообщение для KingStar Посмотреть профиль Найти все сообщения от KingStar
 
Регистрация: 25.08.2011
Сообщений: 42

Подскажите, мне нужно сделать проверку на число. Число может быть целое, а может быть и нет. Мне нужно в строке сделать проверку чтобы точка была одна:

вот мой пример, что не так???:

var num1 = '123';
var num2 = '12.3';

reg=/^(\d+).?(\d+)$/;

res1 = reg.test(num1);
res2 = reg.test(num2);

if(res1==false || res2==false) { alert('ТРА-ТА-ТА'); }
Ответить с цитированием
  #10 (permalink)  
Старый 06.01.2012, 23:46
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

var x = /^\d+$|^\d+\.\d+$/; // x или x.x

alert(x.test("125.1546")); // true
alert(x.test("125..1546")); //false
alert(x.test("125.")); // false
alert(x.test("125")); // true
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 07.01.2012 в 00:15.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка e-mail регулярное выражение mycoding Общие вопросы Javascript 4 09.02.2017 10:12
регулярное выражение leny Общие вопросы Javascript 1 24.09.2011 17:30
регулярное выражение martinss jQuery 5 29.07.2011 12:46
Регулярное выражение: любой символ, включая перевод строки Gleb Общие вопросы Javascript 3 28.07.2011 12:15
регулярное выражение theo_ Общие вопросы Javascript 15 21.06.2010 10:29