답변:
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>
window.location.hash
없습니다 window.location.href
. OP의 기능에서 해당 값을 바꾸십시오.
.href.indexOf("franky")
0의 값을 반환 할 수 있는 경우 .href
"프랭키"로 시작합니다. 물론이 경우 .href
항상 "http :"또는 "file :"과 같이 항상 프로토콜로 시작 하지는 않습니다 . 그럼에도 불구하고의 결과와 비교할 때는 항상> -1,> = 0 또는 선호하는! ==-1을 사용해야합니다 indexOf()
.
if (window.location.href.indexOf("franky") != -1)
할 것입니다. 또는 정규 표현식을 사용할 수 있습니다.
if (/franky/.test(window.location.href))
이렇게 :
<script type="text/javascript">
$(document).ready(function () {
if(window.location.href.indexOf("cart") > -1)
{
alert("your url contains the name franky");
}
});
</script>
window.location.href
의 별칭입니다 window.location
developer.mozilla.org/en-US/docs/Web/API/Window.location은
if
문장에 다른 조건을 추가 할 수 있습니다 . 확인하려면 그것을 가지고 모두, 당신은하고 연산자를 사용할 수 있습니다 &&
: 자바 스크립트를 if( window.location.href.indexOf("cart") > -1 && window.location.href.indexOf("box") > -1 )
이 개 파이프 문자 인 OR 연산자를 사용, 그것은 하나 또는 다른 값을 가지고 있는지 확인하려면||
if( window.location.href.indexOf("cart") > -1 || window.location.href.indexOf("box") > -1 )
window.location
String은 아니지만 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/)
이것은 href 가 AND를 포함 하는지 192.168
또는 localhost
AND가 뒤에 오는지 점검합니다 :1337
.
보시다시피, 정규 표현식을 사용하면 조건이 조금 까다로울 때 다른 솔루션보다 장점이 있습니다.
if(/franky/.test(location.href)) { /* regex matched */ }
경기와 관련이없는 경우 사용 하는 것이 더 간결합니다 .
test
보다 확실히 더 깨끗 match
합니다.
이것을 시도하십시오, 더 짧고 정확하게 작동합니다 window.location.href
:
if (document.URL.indexOf("franky") > -1) { ... }
또한 이전 URL을 확인하려는 경우 :
if (document.referrer.indexOf("franky") > -1) { ... }
이 시도:
<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>
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');
}
~
나는 그것을 보았다, 그래서 : " ~
설정하는 트릭이다 indexOf()
. '(falsy으로 찾을 수 없다는하면서) truthy에 발견 반환 값을이야 사람들이 그렇지 않은 번호를 잘라내는 자사의 부작용을 위해 사용 ..." - stackoverflow.com/a/12299678/3917091
정규 표현식은 단어 경계 \b
나 유사한 장치로 인해 많은 사람들에게 더 적합 합니다. 단어 경계는 어떤 때 발생 0-9
, a-z
, A-Z
, _
에있는 그면 다음 경기 때, 또는 라인 또는 문자열의 끝 또는 시작하기 영숫자 문자 커넥트.
if (location.href.match(/(?:\b|_)franky(?:\b|_)))
를 사용 if(window.location.href.indexOf("sam")
하면 무엇보다도 flotsam
및 same
에 대한 일치 항목이 표시됩니다 . 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}]
(?#comments)
와 freespacing # comments
자바 스크립트처럼. 그러나 이것은 읽기 어렵지 않습니다. // 자바 스크립트에서 복잡한 정규식을 사용할 때 lol을 편집 할 수있는 주석이 달린 사본을 유지합니다.
이 스크립트가 있다고 가정
<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
indexof () 메소드는 대소 문자를 구분하므로 문자열을 소문자 또는 대문자로 변환하는 것이 좋습니다. 대소 문자를 구분하지 않는 검색의 경우 대소 문자를 구분하지 않는 검색의 경우 다음과 같습니다.
var string= location.href;
var convertedString= string.toLowerCase();
if(convertedString.indexOf(franky) != -1){
alert("url has franky");
}
else{
alert("url has no franky");
}
"window.location.contains is not a function"