🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

regexp-support

Package Overview
Dependencies
Maintainers
0
Versions
42
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

regexp-support

check RegExp ( regular expressions ) support

1.0.59
latest
Source
npm
Version published
Maintainers
0
Created
Source

regexp-support

check RegExp ( regular expressions ) support

install

npm install regexp-support

version test log

Api

allow u check support on other RegExp base class

hasSupportFlag(flag: string, RegExpClass?: typeof RegExp, skipPatternCheck?: boolean): boolean
testFlag(flag: string, RegExpClass?: typeof RegExp, flagsPattern?): boolean

RegExpClass can be Object with create, for some class can't create by new

export interface ICreateRegExp
{
	create(pattern: string, flag?: string, ...argv)
}

demo

import support from 'regexp-support';

console.log(support);

todo

desc

lookAheadPositive, lookAheadNegative

  • aa(?=bb)
  • aa(?!bb)

lookBehindPositive

  • (?<=\$)foo
const RE_DOLLAR_PREFIX = /(?<=\$)foo/g;
'$foo %foo foo'.replace(RE_DOLLAR_PREFIX, 'bar'); // => '$bar %foo foo'

lookBehindNegative

  • (?<!\$)foo
const RE_NO_DOLLAR_PREFIX = /(?<!\$)foo/g;
'$foo %foo foo'.replace(RE_NO_DOLLAR_PREFIX, 'bar'); // => '$foo %bar bar'

node.js 10

{ nativeFlags: 'gimsuy',
  flags: 
   { multiline: true,
     m: true,
     global: true,
     g: true,
     ignoreCase: true,
     i: true,
     sticky: true,
     y: true,
     unicode: true,
     u: true,
     dotAll: true,
     s: true,
     freeSpacing: false,
     x: false,
     n: false },
  flagsAll: { g: true, i: true, m: true, s: true, u: true, y: true },
  pattern: 
   { namedCapturingGroups: true,
     namedCapturingGroupsUnicode: true,
     namedCapturingGroupsEmoji: false,
     namedCapturingGroupsBackreference: true,
     namedCapturingGroupsDuplicate: false,
     lookAheadPositive: true,
     lookAheadNegative: true,
     lookBehindPositive: true,
     lookBehindNegative: true,
     dotUnicodeEmoji: true,
     classSub: false },
  prototype: 
   { source: true,
     flags: true,
     lastIndex: true,
     dotAll: true,
     global: true,
     ignoreCase: true,
     multiline: true,
     sticky: true,
     unicode: true },
  static: 
   { '$1': true,
     '$2': true,
     '$3': true,
     '$4': true,
     '$5': true,
     '$6': true,
     '$7': true,
     '$8': true,
     '$9': true,
     input: true,
     '$_': true,
     lastMatch: true,
     '$&': true,
     lastParen: true,
     '$+': true,
     leftContext: true,
     '$`': true,
     rightContext: true,
     '$\'': true,
     '$10': false,
     '$100': false },
  symbol: 
   { species: false,
     match: true,
     replace: true,
     search: true,
     split: true },
  objectStringTag: '[object RegExp]',
  unicodeSet: 
   { unicode: true,
     script: true,
     blocks: false,
     unicodeTest: 
      { C: true,
        Other: true,
        Cc: true,
        Control: true,
        Cs: true,
        Surrogate: true,
        L: true,
        Letter: true,
        LC: true,
        Cased_Letter: true,
        Ll: true,
        Lowercase_Letter: true,
        Lo: true,
        Other_Letter: true,
        Lu: true,
        Uppercase_Letter: true,
        M: true,
        Mark: true,
        Me: true,
        Enclosing_Mark: true,
        Mn: true,
        Nonspacing_Mark: true,
        N: true,
        Number: true,
        Nd: true,
        Decimal_Number: true,
        Nl: true,
        Letter_Number: true,
        No: true,
        Other_Number: true,
        P: true,
        Punctuation: true,
        Pc: true,
        Connector_Punctuation: true,
        Pd: true,
        Dash_Punctuation: true,
        Pe: true,
        Close_Punctuation: true,
        Pf: true,
        Final_Punctuation: true,
        Pi: true,
        Initial_Punctuation: true,
        Po: true,
        Other_Punctuation: true,
        Ps: true,
        Open_Punctuation: true,
        S: true,
        Symbol: true,
        Sc: true,
        Currency_Symbol: true,
        Sk: true,
        Modifier_Symbol: true,
        Sm: true,
        Math_Symbol: true,
        So: true,
        Other_Symbol: true,
        Z: true,
        Separator: true,
        Zl: true,
        Line_Separator: true,
        Zp: true,
        Paragraph_Separator: true,
        Zs: true,
        Space_Separator: true,
        ASCII: true,
        Alphabetic: true,
        Any: true,
        White_Space: true,
        Alpha: true,
        Emoji: true,
        Emoji_Component: true,
        Emoji_Modifier: true,
        Emoji_Presentation: true,
        Ideographic: true,
        Ideo: true,
        Lower: true,
        Quotation_Mark: true,
        QMark: true,
        Unified_Ideograph: true,
        Upper: true,
        Combining_Mark: true,
        punct: true,
        Digit: false,
        Alnum: false,
        Punct: false,
        Graph: false,
        Blank: false,
        Cntrl: false,
        XDigit: false,
        Space: false,
        Decimal_Digit_Number: false },
     scriptTest: 
      { Arabic: true,
        Bengali: true,
        Common: true,
        Coptic: true,
        Cyrillic: true,
        Ethiopic: true,
        Georgian: true,
        Greek: true,
        Han: true,
        Hangul: true,
        Hiragana: true,
        Katakana: true,
        Latin: true,
        Tamil: true,
        Tibetan: true,
        Arab: true,
        Beng: true,
        Copt: true,
        Cyrl: true,
        Ethi: true,
        Geor: true,
        Grek: true,
        Hani: true,
        Hira: true,
        Kana: true,
        Latn: true,
        Taml: true,
        Tibt: true },
     blocksTest: { InBasic_Latin: false } } }

node.js 9

by test on RunKit

{ flags: 
   { multiline: true,
     m: true,
     global: true,
     g: true,
     ignoreCase: true,
     i: true,
     sticky: true,
     y: true,
     unicode: true,
     u: true,
     dotAll: true,
     s: true,
     freeSpacing: false,
     x: false,
     n: false },
  flagsAll: { g: true, i: true, m: true, s: true, u: true, y: true },
  pattern: 
   { namedCapturingGroups: false,
     namedCapturingGroupsUnicode: false,
     namedCapturingGroupsEmoji: false } }

node.js 8

by test on RunKit

{ flags: 
   { multiline: true,
     m: true,
     global: true,
     g: true,
     ignoreCase: true,
     i: true,
     sticky: true,
     y: true,
     unicode: true,
     u: true,
     dotAll: true,
     s: true,
     freeSpacing: false,
     x: false,
     n: false },
  flagsAll: { g: true, i: true, m: true, s: true, u: true, y: true },
  pattern: 
   { namedCapturingGroups: false,
     namedCapturingGroupsUnicode: false,
     namedCapturingGroupsEmoji: false } }

Keywords

check

FAQs

Package last updated on 12 Mar 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts