Чтобы получить буквенно-цифровое совпадение (которое даст вам type1), вместо отрицательного класса символов [^\s]
, который не соответствует символу пробела, вы можете использовать класс символов и указать, что вы хотите сопоставить, например [A-Za-z0-9]
.
Затем используйте отрицательный взгляд, чтобы утверждать, что справа не символ без пробелов:
^#([A-Za-z0-9]+)(?!\S)
Regex demo
Ваш матч находится в первой группе захвата. Обратите внимание, что вам не нужно бежать \#
Например, используя флаг без учета регистра /i
const regex = /^#([A-Za-z0-9]+)(?!\S)/i;
const str = `#type1 this is the text of the note`;
console.log(str.match(regex)[1]);
Если вы хотите соответствовать только типу, вы можете использовать:
^#([a-z]+)[a-z0-9]*(?!\S)
Regex demo
const regex = /^#([a-z]+)[a-z0-9]*(?!\S)/i;
const str = `#type1 this is the text of the note`;
console.log(str.match(regex)[1]);