Javascript JavaScipt代码使用正则表达式替换给定字符串中的所有匹配词,但不替换脚本标记中的所有匹配词 var text=“这是简单html文本被脚本标记简单文本文本分割。注意,我不想丢失我的原始文本变量。我只想用“myword”替换“simple”单词,但不在脚本标记内以及脚本标记的内容”;

Javascript JavaScipt代码使用正则表达式替换给定字符串中的所有匹配词,但不替换脚本标记中的所有匹配词 var text=“这是简单html文本被脚本标记简单文本文本分割。注意,我不想丢失我的原始文本变量。我只想用“myword”替换“simple”单词,但不在脚本标记内以及脚本标记的内容”;,javascript,regex,Javascript,Regex,我想用文本字符串中的“myword”替换所有“simple”单词,但不在脚本标记内容中。 我试过了,但没用 var text = "This is simple html text is split by a script tag <script language='javascript'>simple simple text text <script> text.Note I want don't want to lost my original text v

我想用文本字符串中的“myword”替换所有“simple”单词,但不在脚本标记内容中。 我试过了,但没用

var text = "This is simple html text is split by a script tag <script language='javascript'>simple simple text text <script> text.Note I want don't want to lost my original text var. I just want to replace 'simple' word with 'myword' but not inside script tag as well content of script tag";
var searchMask='simple';
var regEx=new RegExp(“(“+searchMask+”)(!([^)”,“gi”);
var result=text.replace(regEx,“myword”);
我想要得到的输出:-


这是myword html文本被脚本标记simple text拆分。请注意,我不想丢失我的原始文本变量。我只想将“myword”替换为“myword”,但不在脚本标记内,也不包括脚本标记的内容。先拆分它,对正确的部分应用正则表达式,然后再次合并如何

    var searchMask = 'simple';
    var regEx = new RegExp("(" + searchMask + ")(?!([^<]+)?>)", "gi");
    var result = text.replace(regEx, "myword");
var splits=text.split('script');
var forRegex=splits.shift();
var searchMask='simple';
var regEx=new RegExp(“(“+searchMask+”)(!([^)”,“gi”);
var regexResult=forRegex.replace(regEx,“myword”);
var result=[regexResult,…splits].join('script')

Regex在处理嵌套标记时会产生麻烦,因此我建议您使用html解析器来解决。这是否回答了您的问题?(简而言之:不要使用正则表达式来解析html,而是使用专用的html/XML解析器。它将比RegExp模式更可靠地处理边缘情况和其他奇怪情况。)没有必要使用正则表达式。你能给我提供解决方案吗?不,这不是我所要求的。那么这个解决方案有什么问题?它不包括哪些标准?
var splits = text.split('script');
var forRegex = splits.shift();

var searchMask = 'simple';
var regEx = new RegExp("(" + searchMask + ")(?!([^<]+)?>)", "gi");
var regexResult = forRegex.replace(regEx, "myword");

var result = [regexResult, ...splits].join('script')