我正在使用正则表达式来获取一些模式数据并且它工作正常但我需要从变量中使用正则表达式的某些部分但我无法做到这一点请帮助我,如果有人知道如何制作它。
var subStr = document_root.documentElement.outerHTML.match(/http(.*?Frover.fff.com.*?)\;/g);
alert(subStr[0]);
我得到第一个警告结果,但需要像这样做。
var link=rover.fff.com;
var regexpattern="/http(.*?F"+link+".*?)\;/g"
var rex=new RegExp(regexpattern);
var subStr = document_root.documentElement.outerHTML.match(regexpattern);
alert(subStr[0]);
我没有得到任何东西。 请帮我。 评论你是否混淆了任何东西。
答案 0 :(得分:1)
在JavaScript中,当您需要使用变量时,您必须创建一个新的RegExp
对象,就像您尝试过的那样。
它需要两个参数。第一个是模式的字符串(在开头和结尾没有斜杠)。第二个是任何标志(如g
)。
所以,你的模式是这样的:
var regexpattern = new RegExp('http(.*?F' + link + '.*?)\\;', 'g')
请注意,您必须像对待任何其他字符串一样转义字符串中的任何特殊字符(在这种情况下,您的\
必须转义为\\
,以便它能够正常工作正确)。
之后,您使用它与/pattern/
表单相同。在您的情况下,请务必在rex
函数中使用regexpattern
,而不是match()
。
(如果是这样的某些原因并不是文字\
并且您正在逃避分号,只需将其彻底删除,您就不需要逃避分号。)< / p>