Security News
The Dark Side of Open Source
At Node Congress, Socket CEO Feross Aboukhadijeh uncovers the darker aspects of open source, where applications that rely heavily on third-party dependencies can be exploited in supply chain attacks.
@rpearce/flexible-string-replace
Advanced tools
Readme
$ 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 362 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
At Node Congress, Socket CEO Feross Aboukhadijeh uncovers the darker aspects of open source, where applications that rely heavily on third-party dependencies can be exploited in supply chain attacks.
Research
Security News
The Socket Research team found this npm package includes code for collecting sensitive developer information, including your operating system username, Git username, and Git email.
Security News
OpenJS is warning of social engineering takeovers targeting open source projects after receiving a credible attempt on the foundation.