
Security News
ESLint Adds Official Support for Linting HTML
ESLint now supports HTML linting with 48 new rules, expanding its language plugin system to cover more of the modern web development stack.
@rpearce/flexible-string-replace
Advanced tools
🧶 Safely replace any part of a string with anything. Example: useful for replacing substrings with JSX in React
$ npm i @rpearce/flexible-string-replace
or
$ yarn add @rpearce/flexible-string-replace
flexible-string-replace
mirrors the functionality of
String.prototype.replace
with the following exceptions:
[ * ]
– an Array of whatever type your Replacement
is
or returns. For example, if you pass it a function, then you'll get back a
list of strings as well as your match transformations, whereas if you pass a
string, you'll get back simply a list of strings with your replacement applied(Pattern, Replacement, String)
so that if you'd like
to curry
the function and partially apply
the first two arguments, you can then reuse those over and over again with
different stringsNote: while these examples use some JSX, your matching function can return whatever you like.
import flexibleStringReplace from '@rpearce/flexible-string-replace'
const str = 'The rain in Spain falls mainly on the plain. Spain is nice.'
const searchText = 'spain'
const replacement = (match, offset) => <mark key={offset}>{match}</mark>
// usage with RegExp pattern
const pattern = new RegExp(searchText, 'igm')
flexibleStringReplace(pattern, replacement, str)
// [
// 'The rain in ',
// <mark>Spain</mark>,
// ' falls mainly on the plain. ',
// <mark>Spain</mark>,
// ' is nice.'
// ]
// usage with RegExp pattern and string Replacement
const pattern = 'Spain'
flexibleStringReplace(pattern, 'foobar', str)
// [
// 'The rain in ',
// 'foobar',
// ' falls mainly on the plain. ',
// 'foobar',
// ' is nice.'
// ]
// usage with String pattern (no match)
const pattern = 'spain'
flexibleStringReplace(pattern, replacement, str)
// ["The rain in Spain falls mainly on the plain. Spain is nice."]
// usage with String pattern (match)
const pattern = 'Spain'
flexibleStringReplace(pattern, replacement, str)
// [
// 'The rain in ',
// <mark>Spain</mark>,
// ' falls mainly on the plain. Spain is nice.',
// ]
Thanks goes to these wonderful people (emoji key):
Robert Pearce 💻 🤔 ⚠️ 💡 📖 |
This project follows the all-contributors specification. Contributions of any kind welcome!
FAQs
🧶 Safely replace any part of a string with anything. Example: useful for replacing substrings with JSX in React
The npm package @rpearce/flexible-string-replace receives a total of 341 weekly downloads. As such, @rpearce/flexible-string-replace popularity was classified as not popular.
We found that @rpearce/flexible-string-replace demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
ESLint now supports HTML linting with 48 new rules, expanding its language plugin system to cover more of the modern web development stack.
Security News
CISA is discontinuing official RSS support for KEV and cybersecurity alerts, shifting updates to email and social media, disrupting automation workflows.
Security News
The MCP community is launching an official registry to standardize AI tool discovery and let agents dynamically find and install MCP servers.