JavaScript的第三个嵌套引用级别

Third Nested Quoting Level in JavaScript with Regex

本文关键字:嵌套 三个 引用 JavaScript      更新时间:2023-09-26

我试图在JavaScript中创建一个RegExp对象,但不能因为引用限制。我正在搜索我的HTML文档的一部分,我已经转换成一个字符串,dataCellsText,使用outerHTML属性。

由于它是一个HTML文档,并且我有时倾向于在"'引号之间切换,因此我认为我会检查两者,因此是["']。但正是["']阻止了我这么做。我需要使用构造函数new RegExp(),因为我需要在表达式中插入一个变量,这意味着我必须用"'引号包围表达式,这两个引号都已经被占用了。

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

下面是我的regex代码变成的混乱(语法高亮将进一步说明我的观点):

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

有办法摆脱这种报价雪崩吗?如前所述,我需要的是第三种类型的引用,但是在这个上下文中似乎没有这样的东西。

知道变量只包含整数,您不需要escape函数,但是您仍然需要使用双反斜杠来转义regex元字符。

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));