2014-09-27 112 views
0

我的正则表达式有以下问题。正则表达式需要包含加号

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

datas就是这样:

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

我尝试:

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

我不能让正则表达式由于+标志工作。

任何帮助吗?

回答

3

你传递一个字符串match,而不是一个正则表达式,也许你想

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

或者,你需要逃避你反斜线为字符串因此它可以跳过+作为正则表达式,即

datas.match("a\\+='(.*?)'"); 
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'