@jsbits/escape-regex-str

Escapes special characters in a string, for matching substrings with a RegExp instance.

Usage no npm install needed!

<script type="module">
  import jsbitsEscapeRegexStr from 'https://cdn.skypack.dev/@jsbits/escape-regex-str';
</script>

README

@jsbits/escape-regex-str

Part of the JSBits suite.

License npm Version minified size
AppVeyor Test Travis Test coverage code quality maintainability

Escapes special characters in a string, for matching substrings with a RegExp instance.

Install

For NodeJS and JS bundlers:

npm i @jsbits/escape-regex-str
# or
yarn add @jsbits/escape-regex-str

or load escapeRegexStr in the browser:

<script src="https://unpkg.com/@jsbits/escape-regex-str/index.b.min.js"></script>

Targets

  • ES5 compatible browser
  • NodeJS v4.2 or later

escapeRegexStr(str)string

Escapes special characters in a given string in preparation to be used as argument of the JS RegExp constructor, useful when you want to match the given string as a literal substring.

Param Type Description
str string A string.

Returns: string - The escaped string.

Since 1.0.0
Group: dev
Author/Maintainer: aMarCruz

Example

import escapeRegexStr from '@jsbits/escape-regex-str'

const sourceStr = 'Unicorn (white): 



// without escapeRegexStr, the test fails.
const regex1 = new RegExp(sourceStr)
console.log(regex1.test('Unicorn (white): $1.00')) // ⇒ false

// with escapeRegexStr, it succeeds.
const regex2 = new RegExp(escapeRegexStr(sourceStr))
console.log(regex2.test('Unicorn (white): $1.00')) // ⇒ true

Imports

All the JSBits functions works in strict mode and are compatible with:

  • ES5 browsers, through the jQuery $.jsbits object or the global jsbits.
  • ESM Bundlers, like webpack and Rollup.
  • ES modules for modern browsers or NodeJS with the --experimental-modules flag.
  • CommonJS modules of NodeJS, jspm, and others.
  • Babel and TypeScript, through ES Module Interop.

Please see the Distribution Formats in the JSBits README to know about all the variants.

Support my Work

I'm a full-stack developer with more than 20 year of experience and I try to share most of my work for free and help others, but this takes a significant amount of time and effort so, if you like my work, please consider...

Of course, feedback, PRs, and stars are also welcome 🙃

Thanks for your support!

License

The MIT License.

© 2018-2019 Alberto Martínez – Readme powered by jscc and jsdoc-to-markdown