0

Suppose the string:

"The | dog";

If I do in js:

var string;
string = "The | dog | and | apple";
string.split("|")[1];

The returns will be "dog". I should like to replace that, somelike this:

string.split("|")[1] = "cat";

And the string pass to be "The | cat | and |apple", knowing as string "dog" can be another value too.

It's possible?

4
  • 1
    It is possible, but not in one expression. You could use replace() though. Commented Mar 31, 2016 at 17:20
  • 3
    Can't you just use .replace('dog', 'cat') ? Commented Mar 31, 2016 at 17:20
  • This is one simple example, in produce i need to use split and I don't know the value, can be 123 or 456 and more...then, did I can't to do with replace Commented Mar 31, 2016 at 17:22
  • @cl3m - a .replace does not replace all instances. It only replaces the first instance. You can use .replaceAll Commented Apr 14, 2023 at 15:14

2 Answers 2

4

You can replace the individual array element and then use join to make a string again:

var string = "The | dog";

var DELIMITER = " | ";
var parts = string.split(DELIMITER);
parts[1] = "cat";
string = parts.join(DELIMITER);

// string === "The | cat"
Sign up to request clarification or add additional context in comments.

2 Comments

Humm, okay, and if the String be "The | dog | and | apple", if I could want replace dog for another value, knowing dog can be another string too
Yeah, it will just replace the contents between the first and second DELIMITER. If you wanted to replace a different position you could change parts[1] to something else.
2
var arr=string.split('|');
arr[1]='cat'
var s=arr.join('|');

or using regular expressions

string.replace(/^([^\|]+)\|([^\|]+)/g,'$1|cat')

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.