我试图在JavaScript中创建一个RegExp对象,但由于引用限制而无法实现。我正在使用dataCellsText
属性搜索我已经转换为字符串outerHTML
的HTML文档的一部分。
由于它是一个HTML文档,我有时会在"
和'
引号之间切换,我想我会检查两者,因此{{1} }。但["']
是阻止我这样做的原因。我需要使用构造函数["']
,因为我需要在表达式中插入一个变量,这意味着我必须用new RegExp()
或"
引号括起表达式,这两个引号都是已经采取了。
鉴于这一切,我需要的是第三个引用级别。我知道'
,但我认为这会干扰正则表达式。我也知道\"...\"
,但这不是XML或HTML,因此也不适用。
以下是我的正则表达式代码已经变得混乱(语法突出显示将进一步说明我的观点):
"
有没有办法摆脱这种报价雪崩?如前所述,第三种类型的引用将是我需要的,但看起来没有这样的东西可以在这种情况下起作用。
答案 0 :(得分:1)
知道变量只包含整数,您不需要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));