Javascript 如何在字符串之间替换特定字符串的一部分?

Javascript 如何在字符串之间替换特定字符串的一部分?,javascript,string,replace,Javascript,String,Replace,嗨,我有一个简单的问题,如何替换字符串的一部分。假设我们有一个字符串: "This is my string that I need to replace a part FROM to a part TO." 我想将字符串中从“部分到“”到“部分的所有值替换为“”,例如,替换为“XXX”,因此字符串应该如下所示: "This is my string that I need to replace a part FROM XXX TO." 如何在JS中简单地做到这一点(有些命令需要使用numb

嗨,我有一个简单的问题,如何替换字符串的一部分。假设我们有一个字符串:

"This is my string that I need to replace a part FROM to a part TO."
我想将字符串中从“部分到“”到“部分的所有值替换为“”,例如,替换为“XXX”,因此字符串应该如下所示:

"This is my string that I need to replace a part FROM XXX TO."
如何在JS中简单地做到这一点(有些命令需要使用number/index with,而charAt很难将其作为目标)?当然字符串会有所不同,但有些部分是相同的,我需要将它们作为目标,并用特定的唯一字符串(本例中为XXX)替换“中间件”

我的想法是将FROM替换为某个特定标记(!),将to替换为某个特定标记(@)。将字符串从一个特定标记(from-!)替换为另一个特定标记(to-@),命令可以使用获取索引所需的charAt()。。。但这必须是一种更简单、更优雅的方式


救救新手

替换还不够简单吗?如果您正在搜索的字符串有多个实例,请小心,所有实例都将被替换

var str = "This is my string that I need to replace a part FROM to a part TO.";
var res = str.replace("to a part", "XXX");

更多信息参见

替换是否不够简单?如果您正在搜索的字符串有多个实例,请小心,所有实例都将被替换

var str = "This is my string that I need to replace a part FROM to a part TO.";
var res = str.replace("to a part", "XXX");

进一步的信息,一个选项是使用正则表达式在捕获组中匹配来自的
,并在第二个组中捕获任何非贪婪的
(.*)
字符,然后是一个前瞻
(?=
,它断言接下来的是

替换为第1组,后跟空格和XXX

$1 XXX

var str=“这是我的字符串,我需要将一个部件从替换为另一个部件到。”;

console.log(str.replace(/(FROM)(.*?(=TO)/,“$1 XXX”);
一个选项可以是使用正则表达式在捕获组中匹配FROM
中的
,并在第二个组中捕获任何非贪婪的
(.*?
)字符,后跟一个前瞻
(?=
,它断言后面的是

替换为第1组,后跟空格和XXX

$1 XXX

var str=“这是我的字符串,我需要将一个部件从替换为另一个部件到。”;
console.log(str.replace(/(FROM)(.*?(=TO)/,“$1 XXX”);
与TO mach一起使用:

  • 开头
    (FROM)
  • 可替换范围为非贪婪
    *?
  • 和结尾
    (TO)
并使用
$1
$2

const string=“这是我的字符串,我需要将部件从替换为替换为。”;
常量模式=/(从)。*?(到)/;
const replaced=string.replace(模式“$1XXX$2”);
console.log(已更换);
与to马赫数一起使用:

  • 开头
    (FROM)
  • 可替换范围为非贪婪
    *?
  • 和结尾
    (TO)
并使用
$1
$2

const string=“这是我的字符串,我需要将部件从替换为替换为。”;
常量模式=/(从)。*?(到)/;
const replaced=string.replace(模式“$1XXX$2”);

console.log(已替换);
有几种方法可以做到这一点

A-使用正则表达式 B-查找索引并重建字符串
在这两种方法中,您必须确保字符串中没有其他可能与FROM和to关键字混淆的单词。

有几种方法可以做到这一点

A-使用正则表达式 B-查找索引并重建字符串
在这两种方法中,您必须确保字符串中没有其他可能与FROM和to关键字混淆的单词。

请查看indexof、substr和substring。indexof()和replace()是一个选项。正则表达式是另一个选项(我没有想到……),thx伙计们,这正是我需要的!看看indexof、substr和substring。indexof()和replace()是一个选项。正则表达式是另一个选项(我没有想到…)伙计们,这正是我所需要的!不,我想这必须是动态的第一,第二,他需要开始char和结尾字符并替换中间的。不,我想这必须是动态的第一,第二,他需要开始char和结尾字符并替换中间的东西。
var posFrom = str.indexOf('FROM');
var posTo = str.indexOf('TO', posFrom);
if (posFrom !== -1 && posTo !== -1) {
    var res = str.substring(0, posFrom) + 'FROM XXX TO' + str.substring(posTo + 2)
}