Регулярное выражение для поиска строк, не заканчивающихся определенной подстрокой.
Помогите пожалуйста составить регулярное выражение, которое находило бы строки, которые не заканчиваются на ".pdf" .
То есть, чтобы находились строки вида "some string" и "some stringpdf", но не находились строки вида "some string.pdf" |
sutok85,
var a = "some string",b = "some stringpdf",c = "some string.pdf" alert([!/\.pdf$/.test(a),!/\.pdf$/.test(b),!/\.pdf$/.test(c)]); |
sutok85,
Приведите примеры для пары входных строк -> и выходных |
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]); } |
Зачем тут регулярные выражения?
"some string.pdf".slice( -4 ) != ".pdf" "some string".slice( -4 ) != ".pdf" |
Нужна именно регулярка. Специфика задачи.
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 |
sutok85,
учитывая что тебе нужно получить true|false то собственно и правда накой черт рега? она ведь медленнее работает. |
devote
Абсолютно согласен, без регулярки можно вполне обойтись здесь. Но есть CMS-ка, которая принимает в качестве настроек регулярку js для парсинга и отбраковки url. Как-то так :) |
Часовой пояс GMT +3, время: 11:37. |