0

I'm trying to use regex inside if. Strange, but it doesn't work. How it may be fixed?

It works:

var lang = 'lang-js'; if (lang == 'lang-js') { alert('ok'); } 

It works too (just for testing purposes):

var lang = 'lang-js'; if (lang == 'lang-' + 'js') { alert('ok'); } 

But this one doesn't work:

var lang = 'lang-js'; if (lang == 'lang-' + /[a-z]/) { alert('not ok'); } 
2
  • Type 'lang-' + /[a-z]/ in the browser console and see what happens. You're not doing a regular expression test, you are concatenating a regex with a string, which produces a string, and then comparing that with another string. This has nothing to do with jQuery so I've removed that tag. Commented Mar 1, 2017 at 1:54
  • stackoverflow.com/questions/6603015/… Commented Mar 1, 2017 at 1:55

2 Answers 2

5

use something like this

if (/^lang-[a-z]/.test(lang)) { 

you might have to adjust the regex as this just looks for one char.

Sign up to request clarification or add additional context in comments.

Comments

0

its because typeof /[a-z]/ == 'object' and where ''+/[a-z]/ working toString and your result will be string lang-/[a-z]/

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.