URL টি প্রদত্ত স্ট্রিং রয়েছে কিনা তা কীভাবে পরীক্ষা করবেন?


361

আমি কীভাবে এটি করতে পারি:

<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>

"window.location.contains is not a function"
জিন খ।

উত্তর:


656

আপনার href সম্পত্তি যুক্ত করতে হবে এবং indexOfপরিবর্তে চেক করতে হবে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>


3
আমি এই মত একটি দীর্ঘ URL থাকতে preview.tbwabox.co.nz/_v005/index.html#buying-a-car এবং আমি STRING "ক্রয়-A-Car কিন্তু স্ক্রিপ্ট" হয়েছে চেক করতে চান কাজ করছে না ?
ভেনসোহ

6
@ ভেনসোহ আপনি "ক্রয়-এ-কার" সন্ধান করতে পারবেন না কারণ আপনাকে window.location.hashনা দেখার দরকার আছে window.location.href। ওপির ক্রিয়াকলাপে কেবল সেই মানগুলি অদলবদল করুন।
অ্যাড্রিয়ান গঞ্জেলস

1
@ জেডাব্লু কেন`> -1` আমরা ব্যবহার করতে পারি না`> 0`?
এলশান

5
@ এলশান কারণ, কঠোরভাবে বলতে গেলে "স্পষ্ট" দিয়ে শুরু করলে .href.indexOf("franky") 0 এর মান দিতে পারে.href । অবশ্যই, এই ক্ষেত্রে, এটি .hrefপ্রোটোকল দিয়ে সর্বদা শুরু হয় না সাধারণত, সাধারণত "http:" বা "ফাইল:"। তবুও, ফলাফলের সাথে তুলনা করার সময় আপনার>> -1,> = 0 বা, আমার পছন্দ, === - 1 ব্যবহার করা উচিত indexOf()
রবিন্টিসট

আমার একটি মানের একটি অ্যারে রয়েছে এবং এটি দেখতে চাই যে url এর কোনও মান আছে কিনা এবং শর্তের সাথে মিলে যাওয়া অ্যারের সূচকটি আমাকে দিন। আমি কেমন করে ঐটি করি? ধন্যবাদ।
Si8

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

এটা করতে হবে। বিকল্পভাবে, আপনি একটি regexp ব্যবহার করতে পারেন:

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

4
দুটি বিকল্পের মধ্যে একটি উত্তম / কনস এই উত্তরের জন্য একটি দুর্দান্ত সংযোজন হবে।
ক্রিস

তবে আমি যদি রেজেক্স এক্সপ্রেশন ব্যবহার করি তবে কেউ এটি পড়তে সক্ষম হবে না;)
রায়লভলেস

26

আপনি এটির indexOfমতো ব্যবহার করবেন :

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

এছাড়াও hrefস্ট্রিংয়ের জন্য যুক্তটি লক্ষ্য করুন অন্যথায় আপনি যা করতে পারেন:

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

23

তাই ভালো:

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

Window.location.indexOf এবং window.location.href.indexOf কল করার মধ্যে পার্থক্য কী?
স্টারস্প্লসপ্লস

পুনঃটুইট করেছেন window.location.hrefএকজন ওরফে হয় window.location developer.mozilla.org/en-US/docs/Web/API/Window.location
আদ্রিয়ান গনজালেস


1
@ উইনোথনারায়ণ আপনি ifবিবৃতিতে আরও একটি শর্ত যুক্ত করতে পারেন । এটি উভয়ই রয়েছে তা নিশ্চিত করতে, আপনি &&জাভাস্ক্রিপ্টে থাকা অ্যান্ডার অপারেটরটি ব্যবহার করতে পারেন : if( window.location.href.indexOf("cart") > -1 && window.location.href.indexOf("box") > -1 ) এর একটি বা অন্য মান রয়েছে কিনা তা পরীক্ষা করতে, ওআর অপারেটরটি ব্যবহার করুন, যা দুটি পাইপের অক্ষর|| if( window.location.href.indexOf("cart") > -1 || window.location.href.indexOf("box") > -1 )
অ্যাড্রিয়ান গঞ্জেলস

19

window.locationস্ট্রিং নয়, তবে এর একটি toString()পদ্ধতি রয়েছে। সুতরাং আপনি এটি এটি করতে পারেন:

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

অথবা

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

থেকে পুরাতন মোজিলা ডক্স :

অবস্থানের বিষয়বস্তুগুলিতে বর্তমান ইউআরএল ফিরিয়ে দেওয়ার একটি টস্ট্রিং পদ্ধতি রয়েছে। আপনি উইন্ডো.লোকেশনে একটি স্ট্রিংও বরাদ্দ করতে পারেন। এর অর্থ আপনি উইন্ডো.লোকেশন দিয়ে কাজ করতে পারেন যেন বেশিরভাগ ক্ষেত্রে এটি একটি স্ট্রিং। কখনও কখনও, উদাহরণস্বরূপ, যখন আপনি এটিতে একটি স্ট্রিং পদ্ধতি কল করতে হবে, আপনাকে স্পষ্টভাবে টুস্ট্রিং কল করতে হবে।


2
ফায়ারফক্স ৪৮-এ স্ট্রিং.প্রোটোটাইপ কন্টেইনস () সরিয়ে ফেলা হয়েছে। কেবল স্ট্রিং.প্রোটোটাইপ.যুক্ত অন্তর্ভুক্ত () ব্যবহার করুন। এখানে দেখুন
কেসিসি

পছন্দ করেছেন ধন্যবাদ!
আলিন পুরকারু

9

রেজেক্স উপায়:

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

অথবা একটি সাধারণ বিবৃতিতে আপনি ব্যবহার করতে পারেন:

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

ওয়েবসাইটটি স্থানীয়ভাবে চালিত হচ্ছে বা সার্ভারে তা পরীক্ষা করতে আমি এটি ব্যবহার করি:

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

এটি চেক করে রাখে যে হ্রেফের মধ্যে রয়েছে 192.168বা হয় localhostএবং এর পরে রয়েছে :1337

আপনি দেখতে পাচ্ছেন, শর্তটি কিছুটা জটিল হয়ে উঠলে অন্যান্য সমাধানগুলির তুলনায় রেজেক্স ব্যবহারের সুবিধা রয়েছে।


খুশী হলাম। আমি যদি (উইন্ডো.প্যারেন্ট.লোকেশন এইচ .আরএফ.ম্যাচ (/ \? /)) Used উইন্ডো.প্যারেন্ট.লোকেশন = উইন্ডো.প্যারেন্ট.লোকেশন.প্যাথনাম ব্যবহার করি; it এবং এটি খুব ভালভাবে কাজ করে ...
তারিক

বিকল্পভাবে, if(/franky/.test(location.href)) { /* regex matched */ }আমি যদি ম্যাচগুলির সাথে কিছু না করি তবে এটি ব্যবহার করতে আমার কাছে আরও কিছুটা সংক্ষিপ্ত বোধ হয় ।
চেম্বারলাইন

হ্যাঁ, এই ক্ষেত্রে testতুলনায় অবশ্যই পরিষ্কার match
স্টিফান বিজজিটার

6

document.URLআপনি URLএবং পাওয়া উচিত

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

6

এটি চেষ্টা করুন, এটি খাটো এবং ঠিক এর মতো কাজ করে window.location.href:

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

আপনি যদি পূর্ববর্তী ইউআরএলটি পরীক্ষা করতে চান তবে:

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

কারণ আপনার একই উত্তর দিলেন যেমন @sixstarpro আমি downvote করেছিলেন না, কিন্তু, ওহ আমি জানি না, হয়তো স্পষ্টত এই এক 18 মাস পূর্বে পোস্ট করা! এছাড়াও, অতিরিক্ত তথ্য প্রশ্নের document.referrerসাথে সম্পূর্ণ অপ্রাসঙ্গিক।
রবিন্টিস

4

এটি সহজতর হয়

<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>

3

এটা চেষ্টা কর:

<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> 

3

সূচকের চেষ্টা করুন

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

আপনি অনুসন্ধান চেষ্টা করতে পারেন (নিয়মিত প্রকাশের জন্য)

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

2

জাভাস্ক্রিপ্টে ইউআরএল নিতে উইন্ডো.লোকেশন.ইরেফ ব্যবহার করুন। এটি এমন একটি সম্পত্তি যা আপনাকে ব্রাউজারের বর্তমান ইউআরএল অবস্থানটি বলবে। সম্পত্তিটিকে অন্যরকম কিছুতে সেট করা পৃষ্ঠাটি পুনর্নির্দেশ করবে।

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

কোনও ইউআরএল ডিফল্ট পৃষ্ঠা এবং স্ট্রিং আইএম চেকিং দৃশ্যমান নয় কিনা তা কীভাবে পরীক্ষা করবেন। উদাহরণস্বরূপ নমুনা.কম / হোম পেজ.এএসপিএক্সটি আমার পৃষ্ঠা এবং আইএএম স্ট্রিং 'হোমপেজ' সন্ধান করছে। যদি ((লোক.টোস্ট্রিং ()। টুঅপারকেস ()। সূচিপত্র ('হোমপেজ')> -1)) fine fine ঠিক কাজ করে তবে নমুনা ডটকমের আইম যখন (যা এখনও হোমপেজ.অ্যাসপেক্সে নির্দেশ করে) উপরের কোডটি কাজ করবে না। এই পরিস্থিতিটি কীভাবে চেক করবেন? দয়া করে সহায়তা করুন!
সোয়েতা

2

আমি একটি তৈরি করতে 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');
}

1

আপনার জেএস ফাইল রাখুন

                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()People - স্ট্যাকওভারফ্লো.com
নিয়মিত জো

1

শব্দ সীমানা \bবা অনুরূপ ডিভাইসের কারণে নিয়মিত প্রকাশগুলি অনেক লোকের পক্ষে আরও অনুকূল হবে । ওয়ার্ড সীমানা ঘটে যখন কোন 0-9, a-z, A-Z, _উপর দিকে পরবর্তী ম্যাচের, অথবা যখন লাইন বা স্ট্রিং শেষ বা শুরু একটি আলফানিউমেরিক অক্ষর সংযুক্ত করে।

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

আপনি ব্যবহার করেন তাহলে if(window.location.href.indexOf("sam"), আপনার জন্য ম্যাচ পাবেন flotsamএবং sameঅন্য কথায় মধ্যে। tomটমেটো এবং আগামীকাল মিলবে, রেজিক্স ছাড়াই।

এটিকে কেস-সেনসেটিভ করা অপসারণের মতোই সহজ i

আরও, অন্যান্য ফিল্টার যুক্ত করা সহজ as

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

এর সম্পর্কে কথা বলা যাক (?:\b|_)। RegEx সাধারণত _একটি হিসাবে সংজ্ঞায়িত 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)মুক্ত ভাষা এবং ফ্রেইসপ্যাকিং ভাষায় @ রেলাভলেস হ্যাঁ # comments। যাইহোক, এই এক পড়া কঠিন নয়। // আমি যখন জাভাস্ক্রিপ্টে একটি জটিল রেজেেক্স ব্যবহার করি তখন আমি একটি মন্তব্যযুক্ত অনুলিপি রাখি যা আমি লোল সম্পাদনা করতে পারি।
নিয়মিত জো

0

ধরুন আপনার কাছে এই লিপি আছে

<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>

এবং ইউআরএল ফর্ম হয় www.localhost.com/web_form_response.html?text_input=stack&over=flow

লিখিত পাঠ্য <p id="response">হবেstack


0

যদি আপনি আপনার স্ট্রিংকে নিম্ন বা বৃহত আকারে রূপান্তর করেন তবে সূচি () পদ্ধতিটি কেস সংবেদনশীল। এটি যদি আপনার অনুসন্ধানের ক্ষেত্রে সংবেদনশীল মন পূর্ণ না হয় তবে সন্ধানের ক্ষেত্রে সংবেদনশীল মনের দিক থেকে নয় এমন অনুসন্ধানের জন্য এটি হবে:

var string= location.href;
var convertedString= string.toLowerCase();
 if(convertedString.indexOf(franky) != -1){
  alert("url has franky");
}
else{
 alert("url has no franky");
 }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.