>source

URL 다시 쓰기가 활성화된 ASP.NET 웹사이트가 있습니다. C#를 사용하여 경로 매개변수를 얻는 방법을 알고 있습니다.

Page.RouteData.Values["id"] as string;

하지만 자바스크립트에서 가져오는 방법을 모르겠습니다. 다음은 다시 작성한 링크 형식입니다.

http://www.domain.com/topic/{id}/{제목}

JavaScript를 사용하여 이 {id} 필드를 가져오고 싶습니다. 도와주세요!

업데이트

요청 매개변수를 가져오는 이 code가 있습니다.

function getParameterByName(name) {
    name= name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex= new RegExp("[\\?&
]" + name + "=([^&
#]*)"),
        results= regex.exec(location.search);
    return results== null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

경로 매개변수를 얻기 위해 이것을 어떻게 수정할 수 있습니까?

이 게시물을 확인하십시오. 여기에서 해결책을 찾을 수 있을 것입니다. 링크

jalba2022-02-01 05:21:48

URL 매개변수는 다릅니다. 나는 그것이 작동하지 않을 것이라고 생각합니다.

Aishwarya Shiva2022-02-01 05:21:48

형식이 http://www.domain.com/topic/{id}/{title}인 경우 문자열에서 window.location.href를 사용하지 않는 이유는 무엇입니까? '/'로 나눕니다. 그런 다음 특정 인덱스에 액세스합니다.

Vikram Deshmukh2022-02-01 05:21:48

@srvikram13 정확히 하고 싶은 말의 예를 들어주세요.

Aishwarya Shiva2022-02-01 05:21:48

@AishwaryaShiva 아래에 게시 한 솔루션을 확인하십시오.

Vikram Deshmukh2022-02-01 05:21:48
  • 답변 # 1

    function getValueAtIndex(index){
        var str= "http://www.sample.com/234/Fiddle/test"; //window.location.href;
        return str.split("/")[index];
    }
    console.log(getValueAtIndex(3));
    

    업데이트

    다음은 일반 JS의 인덱스에서 값을 얻는 훨씬 깔끔한 방법입니다.

      location.pathname.split('/')[index]
    

    예를 들어 현재 페이지의 경우

    location.pathname= '/questions/20302776/how-to-get-route-parameter'
    

    다음을 수행하여 질문 ID를 얻을 수 있습니다.

    location.pathname.split('/')[2]
    //Notice that the index does not start from zero.
    

    이것은 가상 디렉터리로 작업하는 경우 짜증나는 일입니다.

    Mike2022-02-01 05:36:12

    나는 이것을 좋아하지만 문자열을 별도의 배열 변수로 분할한 다음 배열 길이 -제공된 인덱스 -1을 배열 인덱스로 사용합니다. 그렇게 하면 역방향으로 작동하므로 인덱스 0에 대해 'test'가 반환되고 인덱스 1에 대해 'Fiddle'이 반환됩니다. 이렇게 하면 가상 디렉터리 문제를 해결할 수 있습니다.

    Kate2022-02-01 06:48:12
  • 답변 # 2

    다음을 시도하십시오.

    const getRouteValueAt= (idx)=> {
       const routeTokens= location.pathname.replace(/^\/+/g,'').split('/')
       //[questions,20302776,how-to-get-route-parameter-in-javascript]
       return routeTokens.length > idx ? routeTokens[idx] : undefined
    }
    

    사용

    const routeName= getRouteValueAt(0); //questions
    const routeId= getRouteValueAt(1); //20302776
    

  • 이전 Java -직렬 포트 데이터 추출
  • 다음 python : Tkinter 그리드 행 크기 조정 중지