我正在尝试在 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));
关于javascript - 带有正则表达式的 JavaScript 中的第三个嵌套引用级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31976370/