我有这段代码:
var fileData = '<div name="test1"><h1>Test Div 1</h1></div><!-- Start: FindMe --><div name="findme"></div><!-- End: FindMe -->';
var findInDom = "<!-- Start: FindMe -->.*?<!-- End: FindMe -->";
var result = fileData.replace(findInDom, "");
console.log(result);
我正在尝试从以下方面找到所有内容:
<!-- Start: FindMe -->
和
<!-- End: FindMe -->
但是下面这段代码并没有将<!-- Start: FindMe -->
中的eveything替换为<!-- End: FindMe -->
所以我猜这可能会导致-->
特殊字符问题?
我的HTML:
<div name="test1"><h1>Test Div 1</h1></div><!-- Start: FindMe --><div name="findme"></div><!-- End: FindMe -->
我的正则表达式/替换:
var findInDom = "<!-- Start: FindMe -->.*?<!-- End: FindMe -->";
我的正则表达式变量:
var findInDom = /<!-- Start: " + name + " -->.*?<!-- End: " + name + " -->/;
---名称是变量。
为什么这不是替换的任何想法?
答案 0 :(得分:2)
findInDom
是一个字符串,但您将其视为正则表达式。
相反,您希望使用如下的正则表达式:
var findInDom = /<!-- Start: FindMe -->.*?<!-- End: FindMe -->/;
如果要将变量值插入正则表达式,请改用正则表达式构造函数:
var name = "FindMe";
var findInDom = "<!-- Start: " + name + " -->.*?<!-- End: " + name + " -->";
var regex = new RegExp(findInDom);
var result = fileData.replace(regex);
答案 1 :(得分:0)
您正在使用String进行替换。试试fileData.replace(new RegExp(findInDom, 'g'),"")