正则表达式需要包含加号

时间:2014-09-27 13:50:47

标签: javascript regex

我的正则表达式存在以下问题。

我想在两个字符串之间搜索字符串。

datas就是这样:

var datas = "a='00-8'b='13-'a+='00-2'b+='3333'c='4'";

我试试:

datas.match("a\+='(.*?)'");

由于+符号,我无法使正则表达式正常工作。

任何帮助?

2 个答案:

答案 0 :(得分:3)

您将 String 传递给match,而不是 RegExp ,也许您想要

datas.match(/a\+='(.*?)'/);

或者,您需要转义 String 的反斜杠,以便它可以作为 RegExp 转义+,即

datas.match("a\\+='(.*?)'");

答案 1 :(得分:1)

将正则表达式包含在正斜杠中。

datas.match(/a\+='(.*?)'/g);

OR

如果用双引号括起来,请再次撤消反斜杠。

> datas.match("a\\+='(.*?)'");
[ 'a+=\'00-2\'',
  '00-2',
  index: 15,
  input: 'a=\'00-8\'b=\'13-\'a+=\'00-2\'b+=\'3333\'c=\'4\'' ]
> datas.match("a\\+='(.*?)'")[1];
'00-2'