[英]Replace the text between two strings using JS RegEx
我有一个字符串,我想更新该字符串中两个注释之间的值。
我不确定如何使用RegEx做到这一点
var string = "/* ANIMATION START */ new string should be added here /* ANIMATION END */";
我知道我应该在RegEx
使用.replace()
,但是我不知道如何创建表达式。
这是您需要使用的Regex :
\/\*[\w\s]+\*\/([\w\s]+)\/\*[\w\s]+\*\/
演示:
这是一个示例代码,您需要使用它来替换文本并获得所需的输出:
var string = "/* ANIMATION START */ new string should be added here /* ANIMATION END */"; var regex = /(\\/\\*[\\w\\s]+\\*\\/)([\\w\\s]+)(\\/\\*[\\w\\s]+\\*\\/)/ig; string = string.replace(regex, "$1 ###ADDED TEXT### $3"); console.log(string);
我们只需要分别为ANIMATION START
和ANIMATION END
部分使用另外两个匹配组,因此我们可以在替换字符串中重复使用它们。
共有3部分:
“(\\ [\\ s \\ S] | [^”])*“用于匹配双引号字符串。
'(\\ [\\ s \\ S] | [^'])*'用于匹配单引号的字符串。
(//。 | / * [\\ s \\ S] ?* /)用于匹配单行和多行注释。
替换功能检查匹配的字符串是否为注释。 如果不是,请不要更换。 如果是,请替换“和”。
function t_replace(data){
var re = /"(\\[\s\S]|[^"])*"|'(\\[\s\S]|[^'])*'|(\/\/.*|\/\*[\s\S]*?\*\/)/g;
return data.replace(re, function(all, strDouble, strSingle, comment) {
if (comment) {
return all.replace(/"/g, '"').replace(/'/g, ''');
}
return all;
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.