百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
H

human-regex

> 编程语言
开源

具有类似英语语法的人性化正则表达式构建器。

378 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

具有类似英语语法的人性化正则表达式构建器。

Human Regex ➡️

Human-friendly regular expression builder with English-like syntax.

Features

  • Intuitive builder pattern with chainable methods
  • Prebuilt validators for common patterns (emails, URLs, phone numbers)
  • Comprehensive character classes and quantifiers
  • ️ Type-safe implementation with TypeScript
  • ⚡ Memoized patterns for better performance
  • Supports all standard regex flags

Table of Contents

  • Installation
  • Usage
    • Basic Example
    • Predefined Patterns
  • Comprehensive API Reference
    • Core Methods
    • Quantifiers
    • Anchors & Groups
    • Validation Helpers
    • URL Components
    • Flags
    • Unicode Properties
    • Predefined Patterns
  • Examples
  • Contributing
  • License

Installation

bash
npm install human-regex

Usage

Basic Example

javascript
import { createRegex } from "human-regex";

// Password validation: 8+ chars with special character, digit, and letter
const passwordRegex = createRegex()
  .startAnchor()
  .hasSpecialCharacter()
  .hasDigit()
  .hasLetter()
  .anyCharacter()
  .atLeast(8)
  .endAnchor()
  .toRegExp();

console.log(passwordRegex.test("P@ssw0rd")); // true

Predefined Patterns

javascript
import { Patterns } from "human-regex";

// Email validation
console.log(Patterns.email().test("[email protected]")); // true

// International phone number
console.log(Patterns.phoneInternational().test("+123-4567890")); // true

// URL validation
console.log(Patterns.url().test("https://www.example.com/path")); // true

Comprehensive API Reference

createRegex()

Creates a new regex builder instance.

Core Methods

Method Description Example Output
.digit() Adds a digit pattern (\d). \d
.word() Adds a word character pattern (\w). \w
.whitespace() Adds a whitespace character pattern (\s). \s
.nonWhitespace() Adds a non-whitespace character pattern (\S). \S
.anyCharacter() Adds a pattern for any character (.). .
.literal("text") Adds a literal text pattern. ["text"]
.or() Adds an OR pattern. |
.newline() Adds a pattern for newline characters. (\r\n|\r|\n)
.range("digit") Adds a range pattern for digits (0-9). [0-9]
.notRange("letter") Adds a range pattern for non-letters [^a-zA-Z]
.anyOf("aeiou\\s") Adds list of accepted characters [aeiou\s]
.notAnyOf("aeiou\\s") Adds list of excluded characters [^aeiou\s]

Quantifiers

Method Description Example Output
.exactly(n) Adds an exact quantifier ({n}). {n}
.atLeast(n) Adds a minimum quantifier ({n,}). {n,}
.atMost(n) Adds a maximum quantifier ({0,n}). {0,n}
.between(min, max) Adds a range quantifier ({min,max}). {min,max}
.oneOrMore() Adds a one-or-more quantifier (+). +
.optional() Adds an optional quantifier (?). ?
.zeroOrMore() Adds a zero-or-more quantifier (*). *
.lazy() Makes the previous quantifier lazy. ?
.repeat(count) Repeats the previous pattern exactly count times. {count}

Anchors & Groups

Method Description Example Output
.startGroup() Starts a non-capturing group ((?:). (?:
.startCaptureGroup() Starts a capturing group ((). (
.startNamedGroup("name") Starts a named capturing group. (?
.endGroup() Ends a group ()). )
.startAnchor() Adds a start anchor (^). ^
.endAnchor() Adds an end anchor ($). $
.wordBoundary() Adds a word boundary assertion (\b). \b
.nonWordBoundary() Adds a non-word boundary assertion (\B). \B

Validation Helpers

Method Description Example Output
.hasSpecialCharacter() Adds a lookahead for special characters. (?=.*[!@#$%^&*])
.hasDigit() Adds a lookahead for digits. (?=.*\d)
.hasLetter() Adds a lookahead for letters. (?=.*[a-zA-Z])

URL Components

Method Description Example Output
.protocol() Adds a protocol pattern (https?://). https?://
.www() Adds a www pattern ((www\.)?). (www\.)?
.path() Adds a path pattern ((/\w+)*). (/\w+)*
.tld() Adds a top-level domain pattern. ["(com|org|net)"]

Flags

Method Description Example Output
.global() Adds the global flag (g). g
.nonSensitive() Adds the case-insensitive flag (i). i
.multiline() Adds the multiline flag (m). m
.dotAll() Adds the dot-all flag (s). s
.sticky() Adds the sticky flag (y). y

Unicode Properties

Method Description Example Output
.unicodeChar() Matches Unicode characters. \p{L}
.unicodeDigit() Matches Unicode digits. \p{N}
.unicodePunctuation() Matches Unicode punctuation. \p{P}
.unicodeSymbol() Matches Unicode symbols. \p{S}

Predefined Patterns

  • Patterns.email: Predefined email pattern.
  • Patterns.url: Predefined URL pattern.
  • Patterns.phoneInternational: Predefined international phone number pattern.

Predefined Ranges

For use with range() and notRange():

digit: "0-9", lowercaseLetter: "a-z", uppercaseLetter: "A-Z", letter: "a-zA-Z", alphanumeric: "a-zA-Z0-9", anyCharacter: ".",

RangeKey Range value
digit 0-9
lowercaseLetter a-z
uppercaseLetter A-Z
letter a-zA-Z
alphanumeric a-zA-Z0-9
anyCharacter .

Examples

Combining with Existing Regex

javascript
const basePattern = /^[A-Z]/;
const combined = createRegex().regex(basePattern).digit().exactly(3).toRegExp();

Lookaheads/Lookbehinds

javascript
createRegex().literal("(?\\d{4})")
  .literal("-")
  .literal("(?\\d{2})")
  .toRegExp();

Contributing

We welcome contributions! Please follow the guidelines in CONTRIBUTING.md.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

TypeScript

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言