string-replace-to-array

WebJar for string-replace-to-array

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

string-replace-to-array
Last Version

Last Version

1.0.3
Release Date

Release Date

Type

Type

jar
Description

Description

string-replace-to-array
WebJar for string-replace-to-array
Project URL

Project URL

https://www.webjars.org
Source Code Management

Source Code Management

https://github.com/oztune/string-replace-to-array

Download string-replace-to-array

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/string-replace-to-array/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>string-replace-to-array</artifactId>
    <version>1.0.3</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/string-replace-to-array/
implementation 'org.webjars.npm:string-replace-to-array:1.0.3'
// https://jarcasting.com/artifacts/org.webjars.npm/string-replace-to-array/
implementation ("org.webjars.npm:string-replace-to-array:1.0.3")
'org.webjars.npm:string-replace-to-array:jar:1.0.3'
<dependency org="org.webjars.npm" name="string-replace-to-array" rev="1.0.3">
  <artifact name="string-replace-to-array" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='string-replace-to-array', version='1.0.3')
)
libraryDependencies += "org.webjars.npm" % "string-replace-to-array" % "1.0.3"
[org.webjars.npm/string-replace-to-array "1.0.3"]

Dependencies

compile (3)

Group / Artifact Type Version
org.webjars.npm : invariant jar [2.2.1,3)
org.webjars.npm : lodash.flatten jar [4.2.0,5)
org.webjars.npm : lodash.isstring jar [4.0.1,5)

Project Modules

There are no modules declared in this project.

String replace to array

string-replace-to-array MIT license on NPM string-replace-to-array on NPM Build Status string-replace-to-array total downloads on NPM string-replace-to-array monthly downloads on NPM

Works just like String.prototype.replace but outputs an array instead of a string.

Why?

We built this for use with React, but it's very generic and doesn't depend on any environment. Consider the following scenario.

Given this string:

var content = 'Hello\nworld'

and this React markup:

<span>{ content }</span>

We'll get this output:

Hello world

The newline character is ignored when the browser renders the resulting html.

The solution is to replace \n with <br>:

<span>{ replace(content, '\n', <br>) }</span>

and the output will be:

<span>Hello</br>world</span>

When rendered:

Hello
world

Now the newline will be rendered properly. Yay!

Example usage

Simple example

var replace = require('string-replace-to-array')
replace('Hello Amy', 'Amy', { name: 'Amy' })
// output: ['Hello ', { name: 'Amy' }]

Full example

replace(
  'Hello Hermione Granger...',
  /(Hermione) (Granger)/g,
  function (fullName, firstName, lastName, offset, string) {
    return <Person firstName={ firstName } lastName={ lastName } />
  }
)

// output: ['Hello ', <Person firstName="Hermione" lastName="Granger" />, ...]

For a real-life example check out react-easy-emoji, where this this is used to replace emoji unicode characters with <img> tags.

Installation

npm install --save string-replace-to-array

API

(string, regexp|substr, newValue|function) => array

The API mimics String.prototype.replace. The only differences are:

  • The replacer (third parameter) doesn't have to be a string
  • Returns an array instead of a string

Inspiration

Mainly inspired by this conversation: https://github.com/facebook/react/issues/3386

Why not use react-replace-string?

Because we needed the full API of String.replace, especially the regex match parameters which get passed to the replace function.

Versions

Version
1.0.3