2015-01-14 5 views
0

제발, 제 작업으로 저를 도울 수 있겠습니까? 문자열의 일부를 대체해야합니다. 아마도 가장 좋은 방법은 정규 표현식이지만, 어떻게 작동시키는 지 모릅니다. 나는이 작업을 수행 할 수 :하위 문자열을 편집 된 하위 문자열로 바꿉니다.

http://someweb.com/section/&limit=10&page=2 

page=3page=2 그래서 문자열이 될 것입니다 대체 :

http://someweb.com/section/&limit=10&page=3 

나는 이런 식으로 뭔가를 시도 :

// set string in t variable 
t.replace('/page=[0-9]/', 'page=$1++') }); 

을 주셔서 대단히 감사합니다 당신의 help :)

+0

당신은 당신이 즉/페이지/없다 '/ 페이지 /' – atmd

답변

3

우리의 경우 첫 번째 인수는 regexp이어야하지만, 변형 th is는 문자열 '/page=[0-9]/' (제거 ')입니다. replace에서 함수를 두 번째 인수로 전달하고 원하는 데이터와 일치시킬 수 있습니다.

var str = "http://someweb.com/section/&limit=10&page=2"; 

str.replace(/page=(\d+)/, function (match, page) { 
    return 'page=' + (+page + 1); // plus before page converts string to number 
}); 

Example

+0

이 완벽하게 작동 정규식 필요 했어, 대체 당신의 첫 번째 인수로 문자열을 가지고! 고맙습니다. –

+0

대단히 감사합니다. :) –

+0

@Jan Kožušník 아마도이 http://jsbin.com/jaruq/1/edit?html,js,output –

0

또한 코드 아래에 시도 할 수 있습니다 (예를 들어 page=+1 추가).

var url = "http://someweb.com/section/&limit=10&page=2", 
    reExp = /page=([0-9])+/, 
    result = reExp.exec(url); 

url = url.replace(reExp, 'page=' + (+result[1] + 1)); 
console.log(url) 
+0

그것은 페이지를 = XX 분리 할 수 ​​있지만 숫자가 증가하지 않습니다 :/ –

+0

편집 : 일, 방금 url.replace (reExp, 'page ='+ (+ result [1] + 1)));'결과가 변수에 삽입되지 않았습니다 ... –

+0

잘 작동합니다. 나는 firefox console과 chrome console을 체크했다. @ JanKožušník, 숫자가 증가하고 숫자로 결과를 변환 한 다음 1을 더했습니다. –

관련 문제