Javascript.RU

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

Регулярное выражение для поиска строк, не заканчивающихся определенной подстрокой.
Помогите пожалуйста составить регулярное выражение, которое находило бы строки, которые не заканчиваются на ".pdf" .
То есть, чтобы находились строки вида "some string" и "some stringpdf", но не находились строки вида "some string.pdf"
Ответить с цитированием
  #2 (permalink)  
Старый 07.02.2013, 18:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

sutok85,
var a = "some string",b = "some stringpdf",c = "some string.pdf"
alert([!/\.pdf$/.test(a),!/\.pdf$/.test(b),!/\.pdf$/.test(c)]);
Ответить с цитированием
  #3 (permalink)  
Старый 07.02.2013, 18:35
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

sutok85,
Приведите примеры для пары входных строк -> и выходных
Ответить с цитированием
  #4 (permalink)  
Старый 07.02.2013, 18:37
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

var re = /(?:[\s\S]*\.pdf|([\s\S]*))$/i;

var lines = [
    'some string',
    'some stringpdf',
    'some string.pdf',
    'some string.PDF'
];

for(var i = 0; i < lines.length; i++) {
    alert(re.exec(lines[i])[1]);
}
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 07.02.2013 в 19:23.
Ответить с цитированием
  #5 (permalink)  
Старый 07.02.2013, 19:17
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Зачем тут регулярные выражения?
"some string.pdf".slice( -4 ) != ".pdf"
"some string".slice( -4 ) != ".pdf"
Ответить с цитированием
  #6 (permalink)  
Старый 07.02.2013, 19:30
Новичок на форуме
Отправить личное сообщение для sutok85 Посмотреть профиль Найти все сообщения от sutok85
 
Регистрация: 15.11.2010
Сообщений: 3

Нужна именно регулярка. Специфика задачи.

devote - спасибо, посмотрю и эту регулярку.

Кому интересно, вот такое решение есть:

var r =  /^(?!.*\.pdf$).*/; 

console.log(r.test("some string"));     //true
console.log(r.test("some stringpdf"));  //true
console.log(r.test("some string.pdf")); //false
console.log(r.test("some string.pdfs")); //true
Ответить с цитированием
  #7 (permalink)  
Старый 07.02.2013, 19:35
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

sutok85,
учитывая что тебе нужно получить true|false то собственно и правда накой черт рега? она ведь медленнее работает.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #8 (permalink)  
Старый 08.02.2013, 00:02
Новичок на форуме
Отправить личное сообщение для sutok85 Посмотреть профиль Найти все сообщения от sutok85
 
Регистрация: 15.11.2010
Сообщений: 3

devote
Абсолютно согласен, без регулярки можно вполне обойтись здесь.

Но есть CMS-ка, которая принимает в качестве настроек регулярку js для парсинга и отбраковки url. Как-то так
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите составить регулярное выражение для числа с плавающей точкой boomrest Общие вопросы Javascript 4 25.02.2015 11:17
Как написать регулярное выражение для поиска до конца строки isqad88 Общие вопросы Javascript 3 11.02.2012 15:34
Регулярное выражение для проверки URL Beck Events/DOM/Window 13 06.02.2011 08:01
Регулярное выражение для youtube.com Romych Общие вопросы Javascript 10 28.06.2010 21:40
Регулярное выражение для поиска смайлов. NightmareZ Общие вопросы Javascript 13 23.06.2009 13:12