2011-08-05 4 views
0

다음과 같은 URL이 있다고합니다.jquery는 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로이 작업을 수행 할 수 있습니까? 그렇다면 어떻게?

답변

2
'your url here...'.replace('/assortment/en-US/category/', '/assortment/category/'); 
+0

때로는 너무 간단합니다. 내가해야 할 일은 좀 더 구체적으로 확인하는 것이 었습니다. 감사! – Rob

+0

간단하지만 효과적입니다.) –

1

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

이미 시도했지만 작동하지 않는 것 같습니다. 그것은 단지 en-US의 첫 번째 발생을 대체합니다. 그리고 저는 첫 번째가 아니라 두 번째 발생을 대체하고 싶습니다. – Rob

0

언어 코드를 언급했기 때문에 일반 언어 코드를 찾아 복제본을 바꿀 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("") 

조인 방법의 매개 변수는 필수입니다.

현재 사용중인 대부분의 언어 코드에서 작동합니다.

관련 문제