Проблема с вашим регулярным выражением заключается в том, что []
скажет, присутствует ли один из @
или .
.
Если порядок имеет значение, и вы хотите @
перед .
, вы можете использовать:
@.*\.
Это будет соответствовать любой строке с @
и .
с любым символом между ними.
Если порядок не важно, я думаю, что на самом деле нет необходимости в регулярном выражении:
myString.includes('@') && myString.includes('.')
Версия регулярного выражения доступна на регулярном выражении regex101 , так что вы можете видеть детали.