Regex to check whether string starts with, ignoring case differences

I think all the previous answers are correct. Here is another example similar to SERPRO's, but the difference is that there is no new constructor:

Notice: i ignores the case and ^ means "starts with".

 var whateverString = "My test String";
 var pattern = /^my/i;
 var result = pattern.test(whateverString);
 if (result === true) {
     console.log(pattern, "pattern matched!");
 } else {
     console.log(pattern, "pattern did NOT match!");
 }

Here is the jsfiddle (old version) if you would like to give it a try.

enter image description here


In this page you can see that modifiers can be added as second parameter. In your case you're are looking for 'i' (Canse insensitive)

//Syntax
var patt=new RegExp(pattern,modifiers);

//or more simply:

var patt=/pattern/modifiers;

Pass the i modifier as second argument:

new RegExp('^' + query, 'i');

Have a look at the documentation for more information.


You don't need a regular expression at all, just compare the strings:

if (stringToCheck.substr(0, query.length).toUpperCase() == query.toUpperCase())

Demo: http://jsfiddle.net/Guffa/AMD7V/

This also handles cases where you would need to escape characters to make the RegExp solution work, for example if query="4*5?" which would always match everything otherwise.