нужна помощь в регулярных выражениях javascript - PullRequest
0 голосов
/ 18 января 2010

Я надеюсь, что кто-то может мне помочь, я использую Javascript и asp

У меня есть эта строка /folder1/folder2/pagename.asp

Мне нужно регулярное выражение для удаления /pagename.asp из строки

pagetype.replace(/\/.*?\.asp/ig, '');

Приведенное выше регулярное выражение находится на полпути, но проблема в том, что оно удаляется с начала / все, что находится между / и .asp

как мне сделать регулярное выражение ленивым, чтобы оно было только между последним / и .asp?

Любая помощь будет оценена!

Ответы [ 3 ]

2 голосов
/ 18 января 2010

Попробуйте это:

pagetype.replace(/\/[^\/]*\.asp/ig, '');

Я использовал группу [^\/] для представления любого символа, не равного /.

2 голосов
/ 18 января 2010
/(.*)\/.*?\.asp/ig

Проблема в том, что регулярное выражение совпадает как на раннем этапе , насколько это возможно - одно решение состоит в том, чтобы поместить в начало жадный квантификатор, чтобы он сожрал все возможные ранние совпадения, и вы получите последнее.

И мы используем группу захвата, чтобы захватить этот бит, чтобы мы могли его сохранить.

1 голос
/ 18 января 2010

Обязательно используйте это, удалит имя страницы и расширение:


(\w+)(\.\w+)(:[0-9]+)?(/.+)?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...