Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-在可变位置向文本中插入字符串_Javascript_String_Text_Replace - Fatal编程技术网

Javascript-在可变位置向文本中插入字符串

Javascript-在可变位置向文本中插入字符串,javascript,string,text,replace,Javascript,String,Text,Replace,我在数据库中存储了一个大的文本字段。文本字段在特定位置添加变量,类似于console.log()的工作方式 此文本由$user1在$date编写,而$user1正在与$user2一起完成$subject 然后我可以用正确的动态值交换变量 想知道是否有一种简单的方法来解决这个问题,或者如果我在每个位置拆分字符串,然后用新值重新构建,那么我会感到好奇。您可以在javascript中使用replace函数,它使用正则表达式 例如: var user1 = "Joe"; var original = "

我在数据库中存储了一个大的文本字段。文本字段在特定位置添加变量,类似于console.log()的工作方式

此文本由$user1在$date编写,而$user1正在与$user2一起完成$subject

然后我可以用正确的动态值交换变量


想知道是否有一种简单的方法来解决这个问题,或者如果我在每个位置拆分字符串,然后用新值重新构建,那么我会感到好奇。

您可以在javascript中使用
replace
函数,它使用正则表达式

例如:

var user1 = "Joe";
var original = "This text was written by $user1, on $date, while $user1 was working with $user2 to complete the $subject";
var newString = original.replace(/\$user1/g, user1);
依此类推。

可以使用
RegExp
调用以进行匹配,并使用函数动态确定替换字符串。如果可以创建一个对象映射,该映射的属性名称与格式字符串中的变量相同,并且具有替换项本身的值,则可以通过使用匹配的属性名称从映射对象中获取相应的值,一次将它们全部替换

大概是这样的:

var format=“此文本由$user1在$date编写,而$user1与$user2一起完成$subject”;
var replacementsMap={
用户1:“约翰”,
日期:新日期(),
用户2:“简”,
主题:“协作项目”
};
var result=format.replace(/\$([a-z]+\d*)/g,函数(匹配,属性){
//match=>正则表达式匹配的完整字符串(例如$user1等)
//prop=>捕获的匹配部分(即不包括$)
返回替换映射[prop];
});
document.getElementById(“结果”).innerHTML=result

变量的外观如何?提供您使用的完整字符串/变量/数据。欢迎:)如果有帮助,请将其标记为答案!谢谢你,布莱恩