12

Check if a JavaScript string includes a substring that matches a regex.

I have tried string.includes(substring)

var myString = "This is my test string: AA.12.B.12 with some other chars"; myString.includes(/^[A-Z]{2}\.\d{2}\.\[A-Z]{1}\.\d{2,3}$/); 

True, False

However, code doesn't compile

1
  • Make the regex and then use .test() with the string as the argument. Commented Aug 26, 2019 at 0:45

2 Answers 2

19

You can use .test() on your regular expression to check whether the pattern matches part of the string. As the pattern will need to match only a portion of the string, you will need to remove the ^ and $ characters as your matched pattern can be contained within a line. Also, there is no need to escape the character class bracket as you have tried to do so in your expression (\[), as you want the [ to be treated as a character class, not a literal square bracket:

const myString = "This is my test string: AA.12.B.12 with some other chars"; const res = /[A-Z]{2}\.\d{2}\.[A-Z]{1}\.\d{2,3}/.test(myString); console.log(res);

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

Comments

5

If we look at the docs for String.prototype.includes() we can see it takes a string, not a regular expression. Instead, try RegExp.prototype.test().

Also, since you only want to match a sub-string, you'll need to remove the start and end anchors ^ and $. (More on regex anchors)

Your code becomes:

var myString = "This is my test string: AA.12.B.12 with some other chars"; var myRegex = /[A-Z]{2}\.\d{2}\.\[A-Z]{1}\.\d{2,3}/; console.log(myRegex.test(myString)); 

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.