JQuery удалить часть URL - PullRequest
       6

JQuery удалить часть URL

0 голосов
/ 05 августа 2011

Допустим, у меня есть следующий URL;

http://www.domain.com/en-US/assortment/en-US/category/page.aspx?sub=GROUP7

Как видите, у меня есть два языковых слоя в URL, из которых я хочу удалить ТОЛЬКО второй. Поэтому я ожидаю, что URL будет таким.

http://www.domain.com/en-US/assortment/category/page.aspx?sub=GROUP7

Из-за технических ограничений у меня нет других способов изменить URL. Можно ли это сделать с помощью jQuery или Javascript? Если да, то как?

Ответы [ 3 ]

2 голосов
/ 05 августа 2011
'your url here...'.replace( '/assortment/en-US/category/', '/assortment/category/');
1 голос
/ 05 августа 2011

Проверьте функцию JavaScript replace .

Ну, используя функцию замены, вы можете сделать что-то ужасное, как это:

var url= "http://www.domain.com/en-US/assortment/en-US/category/page.aspx?sub=GROUP7";

var index = url.lastIndexOf('en-US');  //get last index of language
var substr = url.substr(index);        //get substring of the tail
var newsubstr = substr.replace('en-US','');  //use replace to get rid of second lang
var newurl = url.substr(0,index-1); //first part of the url
var cleanurl = newurl + newsubstr;  //concatenate it
alert(cleanurl);

На самом деле я не потратил время на то, чтобы сделать это чище, - я уберу его через несколько минут.

0 голосов
/ 05 августа 2011

Поскольку вы ссылаетесь на код языка, я напишу код javascript, чтобы перехватить общий код языка и заменить дублирование.

Вы можете сделать это легко с помощью регулярных выражений. проверить это

url = "http://www.domain.com/en-US/assortment/en-US/category/page.aspx?sub=GROUP7"

//define regular expression to catch /en-US block
// '/' in front of the language code is also catch in this regular expression
rxp = /(\/[\w]{2}(-[\w]{2})?)/

//split by regular expression
ary = url.split(rxp)

//set the fourth eliment to "" the 4th eliment is the second '/en-US'
ary[3] = "" 

//join array with "" to have the prepare the string
url_new = ary.join("")

параметр внутри метода соединения является обязательным.

Это должно работать с большинством языковых кодов, используемых в настоящее время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...