2012-02-15 1 views
0

Мне нужно удалить уровни каталогов относительного URL-адреса и заменить косые черты на символы подчеркивания. некоторые из этих относительных URL-адресов включают один или два уровня вверх (../ или ../../). сейчас я пользуюсь:javascript заменить относительный путь

$('area, a').click(function() { 
     cleanPath = $(this).attr('href').replace(/'..'/g, "").replace(/\//g, "_")); 
}); 

но это не работает. здесь есть похожие вопросы, но ничто, похоже, не касается моей конкретной проблемы. очевидно, я не специалист RegEx. Может ли кто-нибудь помочь мне понять это?

+0

Не могли бы вы уточнить? Вы хотите изменить их на полные URL-адреса? – MiJyn

ответ

0

Ваше регулярное выражение, /'..'/g ищет все совпадения апострофа, за которыми немедленно следует любой символ, за которым следует любой символ, за которым следует другой апостроф. Это связано с тем, что . соответствует любому символу, кроме символов новой строки (если включен многострочный режим).

Попробуйте также:

/\.\./g 

или

/[.]{2}/g 

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

По ограждающих . в [.], регулярное выражение также относится к . как литерал . ({2} это ровно 2 вхождений, спина к спине).

 Смежные вопросы

  • Нет связанных вопросов^_^