Inverting character sets in regular expressions in JavaScript
With the hat '^' at the beginning of
the square brackets, you can invert what you
want. That is, if, for example, the command
[ab] looks for the letter 'a'
or 'b', then the command [^ab]
will look for all characters except 'a'
and 'b'.
Example
In this example, the search pattern looks like
this: letter 'x', then NOT the letter
'a', not 'b' and not 'c',
then letter 'z':
let str = 'xaz xbz xcz xez';
let res = str.replace(/x[^abc]z/g, '!');
As a result, the following will be written to the variable:
'xax xbx xcx !'
Example
In this example, the search pattern looks like
this: letter 'x', then NOT a small
Latin letter, then letter 'z':
let str = 'xaz xbz x1z xСz';
let res = str.replace(/x[^a-z]z/g, '!');
As a result, the following will be written to the variable:
'xaz xbz ! !'
Practical tasks
Write a regex that matches strings with
the pattern: digit '1', then
not character 'e' and not 'x',
digit '2'.
Write a regex that matches strings with a
pattern: letter 'x', then NOT a
digit from 2 to 7, letter
'z'.
Write a regex that matches strings with a
pattern: letter 'x', then NOT a
capital Latin letter 1 and more
times, letter 'z'.
Write a regex that matches strings with a
pattern: letter 'x', then NOT a
capital or small Latin letter and not a digit
from 1 to 5 - 1 and
more times, letter 'z'.