🎯

js-hoist-regexp

🎯Skill

from theorcdev/8bitcn-ui

VibeIndex|
What it does

js-hoist-regexp skill from theorcdev/8bitcn-ui

πŸ“¦

Part of

theorcdev/8bitcn-ui(23 items)

js-hoist-regexp

Installation

πŸ“‹ No install commands found in docs. Showing default command. Check GitHub for actual instructions.
Quick InstallInstall with npx
npx skills add theorcdev/8bitcn-ui --skill js-hoist-regexp
12Installs
1,576
-
Last UpdatedJan 22, 2026

Skill Details

SKILL.md

Hoist RegExp creation outside render or memoize with useMemo(). Apply when using regular expressions in React components or frequently called functions.

Hoist RegExp Creation

Don't create RegExp inside render. Hoist to module scope or memoize with useMemo().

Incorrect (new RegExp every render):

```tsx

function Highlighter({ text, query }: Props) {

const regex = new RegExp((${query}), 'gi')

const parts = text.split(regex)

return <>{parts.map((part, i) => ...)}

}

```

Correct (memoize or hoist):

```tsx

const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/

function Highlighter({ text, query }: Props) {

const regex = useMemo(

() => new RegExp((${escapeRegex(query)}), 'gi'),

[query]

)

const parts = text.split(regex)

return <>{parts.map((part, i) => ...)}

}

```

Warning (global regex has mutable state):

Global regex (/g) has mutable lastIndex state:

```typescript

const regex = /foo/g

regex.test('foo') // true, lastIndex = 3

regex.test('foo') // false, lastIndex = 0

```