2016-09-09 2 views
0
var url = document.referrer; 
var a=document.createElement('a'); 
a.href=url; 
var path = a.pathname; 

Скажем путь заключается в следующем:Нанести два регулярных выражений правил в матче()

/cat-dog-fish/ 

Я хочу, чтобы удалить начальные и конечные косую черту, если они существуют, иначе ничего не делать.

Я могу это сделать (удаляет слэш):

a.pathname.replace(/\/$/,'') 

Или это (удаляет ведущий слэш)

a.pathname.replace(/^\//,'') 

Но как удалить оба сразу, в Онер, если они существовать?

+0

Используйте OR '|' operator: '/^\/| \/$/g' – 4castle

+0

попробовал a.pathname.replace (/^\/| \/$ /, ''), но он удаляет ведущий косая черта? –

+2

Сделать регулярное выражение заменой всех совпадений (и не только первого совпадения), используя глобальный модификатор 'g' – 4castle

ответ

2

Регулярное выражение буквальным как /^\/|\/$/g может быть использован для замены с пустой строкой, или вы можете использовать /^\/([^]*)\// (матч /, то любые 0+ символы до последнего /, фиксируя то, что находится между косами, чтобы заменить на $1:

var s = "/cat-dog-fish/"; 
 
console.log(s.replace(/^\/|\/$/g, '')); 
 
console.log(s.replace(/^\/([^]*)\/$/, '$1'));

Примечание:

  • ^\/ - соответствует началу строки и / прямо там
  • | - означает ИЛИ
  • \/$ - соответствует / в конце строки
  • ([^]*) - это группа записи (...), которая захватывает 0 или более (*) любые символы как [^] означает не ничего.
1

var a="/cat-dog-fish/"; 
 

 
var d = a.replace(new RegExp("(^\/|\/$)",'g'),''); 
 

 
console.log(d);

a.pathname.replace(new RegExp("(^\/|\/$)",'g'),'');

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