繁体   English   中英

使用JS RegEx替换两个字符串之间的文本

[英]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 STARTANIMATION 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM