As you know, the hat inside [ ]
perform a
negation when written at the beginning of the
brackets. So, it is a special character inside
these brackets. To get a hat as a regular
character, you need to either escape it or
remove it from the first position.
Example
In the following example, the search pattern
is: any first character except 'd'
,
then the two letters 'x'
.
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[^d]xx/g, '!');
As a result, the following will be written to the variable:
'! ! ! dxx'
Example
And now the search pattern is: the first
character is 'd'
or '^'
, then
two letters 'x'
:
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[d^]xx/g, '!');
As a result, the following will be written to the variable:
'axx bxx ! !'
Example
You can not remove the hat from the first position, but just escape it with a backslash, so it will begin to denote itself:
let str = 'axx bxx ^xx dxx';
let res = str.replace(/[\^d]xx/g, '!');
As a result, the following will be written to the variable:
'axx bxx ! !'
Practical tasks
Given a string:
let str = '^xx axx ^zz bkk @ss';
Write a regex that finds strings according to the pattern: hat or AT symbol, and then two Latin letters.
Given a string:
let str = '^xx axx ^zz bkk @ss';
Write a regex that finds strings according to the pattern: a NON-hat and non-AT symbol, and then two Latin letters.
Given a string:
let str = '^xx axx ^zz bkk';
Write a regex that will find strings according to the pattern: a non-hat and non-space, and then two Latin letters.