JavaScript regexp检测引用变体

时间:2018-02-01 15:23:38

标签: javascript regex exec

我正在尝试检测不同引号的使用:"

想象一下,我有两个字符串:src="http://link.com"src=“http://link.com“

我有以下javascript来检测其中一个,但我找不到包含变体的解决方案:

var regexp_src = /src=\"(.*?)\"/;

之后我只应用表达式:

var result = regexp_src.exec(string_variable);

如果有人可以提供帮助,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以使用捕获组["“]中的字符类(["“])捕获任一引号,然后引用组\1以获取匹配的结束引号。

然后您的网址将位于第二个捕获组\2

src=(["“])(.*?)\1

<强>解释

  • 匹配src=
  • 捕获角色类中的"“并将其捕获到组(["“])
  • 捕获任何字符零次或多次非贪婪.*?
  • 请参阅第1组\

&#13;
&#13;
var strings = [
  'src="http://link.com"',
  'src=“http://link.com“'
];
var regexp_src = /src=(["“])(.*?)\1/;
for (var i = 0; i < strings.length; i++) {
  console.log(regexp_src.exec(strings[i]));
}
&#13;
&#13;
&#13;