Wednesday 25 November 2020

Using Javascript, .test and RegEx to evaluate a URL for /?s=

I want to test a URL for an empty search string, i.e /?s=, but not match anything like /?s=withsearchterms that has any search terms after the /?s=, and then use an if statement and .addClass to display a div that warns that no search terms were entered.

I'm trying to use Javascipt and g.test like below; the RegEx pattern is valid, according to several RegEx testers. But no luck:

var href = window.location.href;

var contains = /[\/?s=]+/g.test(href);

if (contains) {

$("#no-search-terms").addClass("display-block");

}

Is my RegEx wrong? Is my use of test wrong?


Edit 11/22/2020

Peter Thoeny's idea is close. But this throws the alert"matches" all the time, for /?s= and any search string, i.e. /?s=example. Is the RegEx not correct?

 var search = 'http://example.com/search/?s='
    
    var regex = /\/\?s=$/;
    
    if (regex.test(search)) {
    
    alert("matches");

    } else {

    alert("no match");

}


from Using Javascript, .test and RegEx to evaluate a URL for /?s=

No comments:

Post a Comment