@Kisil

Как проверить что в переменной находится регулярное выражение?

Как проверить что в переменной находится регулярное выражение?
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Проверить, присутствует ли RegExp в цепочке прототипов: x instanceof RegExp.
Или, посмотреть, не является ли RegExp конструктором значения: x?.constructor === RegExp.

А вообще, можно и в более общем виде задачу решить - сделать функцию, которая будет определять тип переданного значения, а дальше уже проверять, что она возвращает.

Можно получать сам тип данных (т.е., конструктор для объектов или само значение, если оно nullish):

const type = x => x == null ? x : x.constructor;

type() === undefined // true
type(null) === null // true
type(/./) === RegExp // true
type(666) === Number // true
type(type) === Function // true

А можно - имя типа:

const typename = x => x?.constructor.name ?? `${x}`;

typename() // 'undefined'
typename(null) // 'null'
typename(false) // 'Boolean'
typename(187) // 'Number'
typename('hello, world!!') // 'String'
typename(/./) // 'RegExp'
typename({}) // 'Object'
typename([]) // 'Array'
typename(document.body) // 'HTMLBodyElement'
typename(document.getElementsByClassName('xxx')) // 'HTMLCollection'
typename(new class XXX {}) // 'XXX'
typename(typename) // 'Function'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Karpion
Практически любая строка м.б. рег.выражением.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы