如何构造一个javascript正则表达式来提取特殊字符串后的所有字符串?

时间:2015-12-01 07:50:00

标签: javascript regex

我有这个字符串:

"AED 149: "Instant Redemption A 10AED""

我怎样才能有正则表达式来获取此文本?

"Instant Redemption A 10AED"

目前我有这个

var regEx = new RegExp(currency + ' ' + '[\\d,.]+: (.*)', "ig");

现在货币值为AED

但这会让我"AED 149: "Instant Redemption A 10AED""作为匹配

我是否可以修改我的正则表达式以仅获得此结果:"Instant Redemption A 10AED"

3 个答案:

答案 0 :(得分:2)

将我的评论转移到答案中以便更好地理解。

你的正则表达式很好,但不需要global标志。你只需要像这样使用捕获的组#1:

var currency = 'AED'    
var regEx = new RegExp(currency + ' ' + '[\\d,.]+: (.*)', "i");    
var s = 'AED 149: "Instant Redemption A 10AED"'

var m = s.match(regEx);

console.log(m[1]);
//=> "Instant Redemption A 10AED"

答案 1 :(得分:0)

如果你总是使用相同的格式,你可以在没有正则表达式的情况下获得它,只需使用split:

var my_string = 'AED 149: "Instant Redemption A 10AED"';
my_string.split(':')[1]; //Will return "Instant Redemption A 10AED"

希望这会有所帮助。

答案 2 :(得分:0)

var str = "AED 149: "Instant Redemption A 10AED"";
str.replace(/[^\:]+\:[^\"]+\"([^\"]+)\"/, "$1");