替换并保留节点js

时间:2017-10-09 18:17:55

标签: javascript node.js

如何在Node js / Javascript中执行以下操作?

EG。说原始出现=" xyz-abc-def" 我想用" 123-abc-456"替换上面字符串的整个出现次数。 xyz和def在上面的字符串中是常量,而abc可以是原始出现的任何字符串。例如。

"xyz-asd-def" -> "123-asd-456"
"xyz-ghj-def" -> "123-ghj-456"

如何在节点js中执行此操作?

3 个答案:

答案 0 :(得分:2)

您可以使用正则表达式执行此操作。

var reg = /xyz-(.+?)-def/g;
var input = 'xyz-asd-def';
var result = input.replace(reg, '123-$1-456');

答案 1 :(得分:0)

您可以使用正则表达式替换您尝试替换的每个文本字符串的所有实例。

"def-xyz-asd-def"
    .replace(new RegExp("xyz","g"), "123")
    .replace(new RegExp("def","g"), "456");

将导致" 456-123-asd-456"

答案 2 :(得分:0)

根据您的要求的复杂性,最佳路线为Regex

您可以使用捕获组仅提取所需字符串的部分,并且在模式不变的情况下,您可以重建字符串,例如。

"xyz-asd-def".replace(/xyz-(\S+)-def/, "123-$1-456");

这将捕获“xyz-xxx-def”模式中的任何非空白字符,没有长度限制。如果您希望在单个字符串中包含此模式的多个实例,请使用全局替换选项(将g附加到正则表达式的末尾)