JavaScript 中使用正则表达式的第三个嵌套引用级别

Third Nested Quoting Level in JavaScript with Regex

我正在尝试在 JavaScript 中创建一个 RegExp 对象,但由于引用限制无法创建。我正在使用 outerHTML 属性.

搜索已转换为字符串 dataCellsText 的 HTML 文档的一部分

因为它是一个 HTML 文档,而且我有时倾向于在 "' 引号之间切换,我想我会检查两者,因此 ["']。但是 ["'] 是阻止我这样做的原因。我需要使用构造函数 new RegExp(),因为我需要在表达式中插入一个变量,这意味着我必须用 "' 引号将表达式括起来,这两个引号都是已经拍了。

考虑到所有这些,我需要的是第三个引用级别。我知道 \"...\",但我认为这会干扰正则表达式。我也知道 ",但这不是 XML 或 HTML,所以这也不适用。

下面是我的正则表达式乱码(语法高亮会进一步说明我的观点):

var regexXSearch = new RegExp("<div id=["'](\w+-*\w*)["']\sdata-cell-x=" + cellCoords.x + ">", "g");
var regexXResults = regexXSearch.exec(dataCellsText);

有没有办法摆脱这种报价雪崩?如前所述,我需要第三种类型的引述,但在这种情况下似乎没有这样的引述。

知道变量只包含整数,你不需要escape函数,但你仍然需要使用双反斜杠来转义正则表达式元字符。

var cellCoordsX = "300"
var regexXSearch = new RegExp("<div id=[\"'](\w+-*\w*)[\"']\sdata-cell-x=[\"']" + cellCoordsX + "[\"']>", "g");
alert("<div id=\"123-Ac_fg\" data-cell-x=\"300\">".match(regexXSearch));