Case insensitive regex in JavaScript

前端 未结 4 1014
-上瘾入骨i
-上瘾入骨i 2020-11-22 12:33

I want to extract a query string from my URL using JavaScript, and I want to do a case insensitive comparison for the query string name. Here is what I am doing:

<         


        
相关标签:
4条回答
  • 2020-11-22 13:06

    Simple one liner. In the example below it replaces every vowel with an X.

    function replaceWithRegex(str, regex, replaceWith) {
      return str.replace(regex, replaceWith);
    }
    
    replaceWithRegex('HEllo there', /[aeiou]/gi, 'X'); //"HXllX thXrX"
    
    0 讨论(0)
  • 2020-11-22 13:13

    You can add 'i' modifier that means "ignore case"

    var results = new RegExp('[\\?&]' + name + '=([^&#]*)', 'i').exec(window.location.href);
    
    0 讨论(0)
  • 2020-11-22 13:13

    modifiers are given as the second parameter:

    new RegExp('[\\?&]' + name + '=([^&#]*)', "i")
    
    0 讨论(0)
  • 2020-11-22 13:16

    Just an alternative suggestion: when you find yourself reaching for "case insensitive regex", you can usually accomplish the same by just manipulating the case of the strings you are comparing:

    const foo = 'HellO, WoRlD!';
    const isFoo = 'hello, world!';
    return foo.toLowerCase() === isFoo.toLowerCase();
    

    I would also call this easier to read and grok the author's intent!

    0 讨论(0)
提交回复
热议问题