Skip to content

Functions to easily perform various replace operations on a Javascript/Typescript string

Notifications You must be signed in to change notification settings

simplyhexagonal/multi-replace

Repository files navigation

Multi Replace

Tests Try multi-replace on RunKit

On a single call, perform multiple replace operations on a Javascript/Typescript string.

Open source notice

This project is open to updates by its users, I ensure that PRs are relevant to the community. In other words, if you find a bug or want a new feature, please help us by becoming one of the contributors ✌️ ! See the contributing section.

Like this module? ❤

Please consider:

Usage

Import multiReplace:

// Node
const { multiReplace } = require('@simplyhexagonal/multi-replace');

// ES6/Typescript
import { multiReplace } from '@simplyhexagonal/multi-replace';

// Browser
<script src="https://cdn.jsdelivr.net/npm/@simplyhexagonal/multi-replace@latest/dist/multi-replace.min.js"></script>
<script>
  const { multiReplace } = MultiReplace;
</script>

Define one or more replace patterns:

const firstReplacePattern = ['Greetings', async () => 'hello'];
const secondReplacePattern = [/stranger/g, 'friend'];

// A replace pattern is an array where the first item is the "matcher"
// and the second item is the "replacement".

// A matcher can be either a string or a regular expression.
// A replacement can be either a string or a function.

Use multiReplace to perform the replacements over your content:

const content = 'Greetings stranger, I am also a stranger';

const result = await multiReplace(
  content,
  [
    firstReplacePattern,
    secondReplacePattern,
  ],
);

console.log(result);
// Hello friend, I am also a friend

Synchronous usage

If you need to perform replacements synchronously simply use multiReplaceSync:

// Node
const { multiReplaceSync } = require('@simplyhexagonal/multi-replace');

// ES6/Typescript
import { multiReplaceSync } from '@simplyhexagonal/multi-replace';

// Browser
<script src="https://cdn.jsdelivr.net/npm/@simplyhexagonal/multi-replace@latest/dist/multi-replace.min.js"></script>
<script>
  const { multiReplaceSync } = MultiReplace;
</script>

Contributing

Yes, thank you! This plugin is community-driven, most of its features are from different authors. Please update the tests and don't forget to add your name to the package.json file.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Jean Lescure

🚧 💻 📓 ⚠️ 💡 📖

License

Copyright (c) 2021-Present MultiReplace Contributors.
Licensed under the Apache License 2.0.