admin管理员组

文章数量:1322351

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?

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?

Share Improve this question edited Mar 31, 2016 at 17:30 BrTkCa asked Mar 31, 2016 at 17:19 BrTkCaBrTkCa 4,7834 gold badges27 silver badges45 bronze badges 4
  • 1 It is possible, but not in one expression. You could use replace() though. – elclanrs Commented Mar 31, 2016 at 17:20
  • 3 Can't you just use .replace('dog', 'cat') ? – cl3m 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 – BrTkCa 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 – Nikhil Nanjappa Commented Apr 14, 2023 at 15:14
Add a ment  | 

2 Answers 2

Reset to default 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"
var arr=string.split('|');
arr[1]='cat'
var s=arr.join('|');

or using regular expressions

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

本文标签: Replace value after split in javascriptStack Overflow