2016-12-27 2 views
0

У меня есть это регулярное выражение:Заменить регулярное выражение в JavaScript,

var a = window.location.href.replace(/((.*)[&|?])(sessionid(=[^&]*))([&|#](.*))/, '$1$5'); 

Это удалить SessionID из примера URL, как это:

http://...&parent_location=Test&abc=123&sessionid=q26bh6bkm8g49aeopem2obdm87igrsfe&... 

Результат будет:

http://...&parent_location=Test&abc=123&&... 

Мой вопрос в том, что в случае замены я могу добавить замену также для parent_location

+0

Что вы ожидаемый результат? – anubhava

+4

1. Разберите строку URL/запроса в массив/объект. 2. Манипулируйте данными по мере необходимости. 3. Переформатируйте URL-адрес. - Гораздо здраво, чем регулярное выражение. – deceze

+0

Этот результат: http: //...&& abc = 123 && ... Я не удаляю также строку запроса parent_location, было бы полезно удалить также и не нужно – Piero

ответ

2

Использовать одиночное регулярное выражение с ненужной группой захвата.

str.replace(/([&?])(?:sessionid|parent_location)=[^&#]*(?=[&#]|$)/m, '$1') 

DEMO

+0

Не работает с тегом ash http: // ... & parent_location = Test & abc = 123 & sessionid = q26bh6bkm8g49aeopem2obdm87igrsfe # abc/abc должен оставаться: http: //...&abc=123#abc/abc – Piero

+0

просто добавьте '#' внутри первого символьного класса .. т.е. '[&? #] ' –

0

Вы можете добавить несколько меток .replace в строку.

var a = window.location.href 
    .replace(/((.*)[&|?])(sessionid(=[^&]*))([&|#](.*))/, '$1$5') 
    .replace(/*statement*/); 
Смежные вопросы