Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3752054
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 19, 20262026-05-19T09:09:41+00:00 2026-05-19T09:09:41+00:00

Using JavaScript I would like to check if a given URL matches a list

  • 0

Using JavaScript I would like to check if a given URL matches a list of URL schemes. I have come this far:

function on_wikipedia() {
    // the list of allowed locations
    var allowed_locations = new Array( "http://*.wikibooks.org/*"
                                     , "http://*.wikimedia.org/*"
                                     , "http://*.wikipedia.org/*"
                                     , "http://*.wikiquote.org/*"
                                     , "http://*.wikiversity.org/*"
                                     , "http://*.wiktionary.org/*"
                                     , "http://www.mediawiki.org/*"
                                     , "https://secure.wikimedia.org/*"
                                     );

    // current location; e.g. "http://en.wikipedia.org/wiki/Main_Page"
    var current_location = content.document.location;

    var valid = false;

    // compare current_location to allowed_locations and set valid to true,
    // if it matches
    //
    // FIXME

    return valid;
}

Maybe it is a bad idea to do it like this. Maybe I should use regular expressions to make the comparason? Unfortunately I’m lost… I have no JavaScript experience at all. Could someone please point me in the right direction?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-19T09:09:42+00:00Added an answer on May 19, 2026 at 9:09 am
    function onWikipedia(){
      // Untested
      var allowedLocations = /^(?:http:\/\/(?:.+?\.wik(?:ibooks|imedia|ipedia|iquote|iversity|tionary)\.org|www\.mediawiki\.org)\/|https:\/\/secure.wikimedia.org\/)/i;
      return allowedLocations.test( content.document.location );
    } 
    

    The i at the end of the regex makes it case-insensitive. Remove if you don’t want that.

    In general, the regex says this:

    • Starting at the front of the string (^), look for either of the following ((?:...|...)):
      • http:// followed by either of the following, and then a literal slash (\/)
        • basically anything (.+?) followed by a literal period (\.) followed by wik and then…oh, one of these domain names, followed by .org, or
        • www.mediawiki.org
      • https://secure.wikimedia.org/

    Note that the very permissive .+? allows something like http://foo.bar.com/?.wikibooks.org/ to be matched. You probably want something more restrictive, such as letters, numbers, underscores, periods, or hyphens. If so, replace .+? with [\w.-]+?

    Alternatively, instead of testing against the entire URL, you might want to just check against the hostname:

    function onWikipedia(){
      if (location.protocol=='https:'){
        return location.hostname == 'secure.wikimedia.org';
      }else{
        var regexp = /^(?:www\.wikimedia|.+?\.wik(?:ibooks|imedia|ipedia|iquote|iversity|tionary)\.org/i;
        return regexp.test( location.hostname );
      }
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I would like to perform form validation using JavaScript to check for input field
I would like to clone a tag using Javascript (without using any external frameworks
Using Javascript, I would like change the background color of the numbers in an
I would like to open a popup window using javascript in my c#.net app.
background: i am using javascript templates, which i would like to output raw, without
How to capture the following pattern using JavaScript regular expressions? I would like to
I would like to implement the download estimator using the JavaScript and the Ajax.
I would like to move a circle along a circular path using HTML/CSS/JavaScript. Is
I'm working from a JavaScript book and would like to create some menus using
I know how I would achieve this using PHP, but with jQuery / JavaScript

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.