Programming

URL에 주어진 문자열이 포함되어 있는지 확인하는 방법은 무엇입니까?

procodes 2020. 3. 4. 07:48
반응형

URL에 주어진 문자열이 포함되어 있는지 확인하는 방법은 무엇입니까?


어떻게 이런 식으로 할 수 있습니까?

<script type="text/javascript">
$(document).ready(function () {
    if(window.location.contains("franky")) // This doesn't work, any suggestions?
    {
         alert("your url contains the name franky");
    }
});
</script>

indexOf대신 href 속성을 추가하고 확인해야합니다.contains

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
  $(document).ready(function() {
    if (window.location.href.indexOf("franky") > -1) {
      alert("your url contains the name franky");
    }
  });
</script>


if (window.location.href.indexOf("franky") != -1)

할 것입니다. 또는 정규 표현식을 사용할 수 있습니다.

if (/franky/.test(window.location.href))

다음 indexOf과 같이 사용 하십시오.

if(window.location.href.indexOf("franky") != -1){....}

href그렇지 않으면 문자열을 추가하는 것에 주목하십시오 .

if(window.location.toString().indexOf("franky") != -1){....}

이렇게 :

    <script type="text/javascript">
        $(document).ready(function () {
            if(window.location.href.indexOf("cart") > -1) 
            {
                 alert("your url contains the name franky");
            }
        });
    </script>

window.locationString은 아니지만 toString()메소드가 있습니다. 따라서 다음과 같이 할 수 있습니다.

(''+window.location).includes("franky")

또는

window.location.toString().includes("franky")

로부터 오래된 모질라 문서 :

위치 객체에는 현재 URL을 반환하는 toString 메소드가 있습니다. window.location에 문자열을 할당 할 수도 있습니다. 이것은 대부분의 경우 문자열 인 것처럼 window.location으로 작업 할 수 있음을 의미합니다. 예를 들어, String 메소드를 호출해야하는 경우 명시 적으로 toString을 호출해야합니다.


정규식 방법 :

var matches = !!location.href.match(/franky/); //a boolean value now

또는 간단한 문장으로 다음을 사용할 수 있습니다.

if (location.href.match(/franky/)) {

웹 사이트가 로컬로 실행 중인지 서버에서 실행 중인지 테스트하는 데 사용합니다.

location.href.match(/(192.168|localhost).*:1337/)

hrefAND를 포함 하는지 192.168또는 localhostAND가 뒤에 오는지 점검합니다 :1337.

보시다시피, 정규 표현식을 사용하면 조건이 조금 까다로울 때 다른 솔루션보다 장점이 있습니다.


document.URL당신 URL

if(document.URL.indexOf("searchtext") != -1) {
    //found
} else {
    //nope
} 

이것을 시도하십시오, 더 짧고 정확하게 작동합니다 window.location.href:

if (document.URL.indexOf("franky") > -1) { ... }

또한 이전 URL을 확인하려는 경우 :

if (document.referrer.indexOf("franky") > -1) { ... }

더 쉽게

<script type="text/javascript">
$(document).ready(function () {
    var url = window.location.href;
    if(url.includes('franky'))    //includes() method determines whether a string contains specified string.
    {
         alert("url contains franky");
    }
});
</script>

이 시도:

<script type="text/javascript">             
    $(document).ready
    (
        function () 
        { 
            var regExp = /franky/g;
            var testString = "something.com/frankyssssddsdfjsdflk?franky";//Inyour case it would be window.location;
            if(regExp.test(testString)) // This doesn't work, any suggestions.                 
            {                      
                alert("your url contains the name franky");                 
            }             
        }
    );         
</script> 

indexOf를 사용해보십시오

if (foo.indexOf("franky") >= 0)
{
  ...
}

검색을 시도 할 수도 있습니다 (정규 표현 식용).

if (foo.search("franky") >= 0)
{
  ...
}

나는을 만들고 그것을 boolean논리적으로 사용하고 싶다 if.

//kick unvalidated users to the login page
var onLoginPage = (window.location.href.indexOf("login") > -1);

if (!onLoginPage) {
  console.log('redirected to login page');
  window.location = "/login";
} else {
  console.log('already on the login page');
}

Javascript에서 URL을 가져 오려면 Window.location.href를 사용하십시오. 브라우저의 현재 URL 위치를 알려주는 속성입니다. 속성을 다른 것으로 설정하면 페이지가 리디렉션됩니다.

if (window.location.href.indexOf('franky') > -1) {
     alert("your url contains the name franky");
}

당신의 js 파일에 넣어

                var url = window.location.href;
                console.log(url);
                console.log(~url.indexOf("#product-consulation"));
                if (~url.indexOf("#product-consulation")) {
                    console.log('YES');
                    // $('html, body').animate({
                    //     scrollTop: $('#header').offset().top - 80
                    // }, 1000);
                } else {
                    console.log('NOPE');
                }

정규 표현식은 단어 경계 \b나 유사한 장치로 인해 많은 사람들에게 더 적합 합니다. 단어 경계는 어떤 때 발생 0-9, a-z, A-Z, _에있는 그면 다음 경기 때, 또는 라인 또는 문자열의 끝 또는 시작하기 영숫자 문자 커넥트.

if (location.href.match(/(?:\b|_)franky(?:\b|_)))

당신이 사용하는 경우 if(window.location.href.indexOf("sam"), 당신을 위해 일치를 얻을 수 있습니다 flotsamsame다른 단어들. tom정규식없이 토마토와 내일 일치합니다.

대소 문자를 구분하는 것은을 제거하는 것만 큼 간단합니다 i.

또한 다른 필터를 추가하는 것만 큼 쉽습니다

if (location.href.match(/(?:\b|_)(?:franky|bob|billy|john|steve)(?:\b|_)/i))

에 대해 이야기합시다 (?:\b|_). 정규식은 일반적으로 정의 _A와 word character이 단어가 발생하지 않도록 경계. 우리는 이것을 (?:\b|_)다루기 위해 이것을 사용합니다 . 문자열을 \b거나 양쪽에서 확인하십시오 _.

다른 언어는 다음과 같은 것을 사용해야 할 수도 있습니다

if (location.href.match(/([^\wxxx]|^)(?:franky|bob|billy|john|steve)([^\wxxx]|$)/i))
//where xxx is a character representation (range or literal) of your language's alphanumeric characters.

이 모든 것이 말하는 것보다 쉽습니다

var x = location.href // just used to shorten the code
x.indexOf("-sam-") || x.indexOf("-sam.") || x.indexOf(" sam,") || x.indexOf("/sam")...
// and other comparisons to see if the url ends with it 
// more for other filters like frank and billy

다른 언어의 정규 표현식은 지원 \p{L}하지만 자바 스크립트는 지원 하지 않으므로 외국어 문자를 쉽게 검색 할 수 있습니다. 같은 것[^\p{L}](filters|in|any|alphabet)[^\p{L}]


이 스크립트가 있다고 가정하십시오.

<div>
  <p id="response"><p>
  <script>
    var query = document.location.href.substring(document.location.href.indexOf("?") + 1);
    var text_input = query.split("&")[0].split("=")[1];
    document.getElementById('response').innerHTML=text_input;
  </script> </div>

그리고 URL 형식은 www.localhost.com/web_form_response.html?text_input=stack&over=flow

작성된 텍스트 <p id="response">stack

참고 URL : https://stackoverflow.com/questions/4597050/how-to-check-if-the-url-contains-a-given-string



반응형