我的电子邮件模板看起来像这样:
Dear {user.firstName},<br><br> Thank you for buying {item} with us. <br><br>
Your Order ID is : <b> {{orderId}} </b>. <br><br>
Thank again for supporting us.
下面是我试图从段落中提取的例子:
1)来自段落的{}内的东西
user.firstName // from {user.firstName}
item // from {item}
orderId // from {{orderId}}
2)整个{}包括段落内的东西
{user.firstName} // from {user.firstName}
{item} // from {item}
{orderId} // from {{orderId}}
对于(1),我尝试使用/{(.*)}/g
或/({)(.*)(})/g
,但仍会选择整个{{tag}}。
以下是我为(2)所尝试的内容:
/({([a-z])\w+})|({([a-z])+})|({([A-Z])\w+})|({([A-Z])+})|({[0-9]+})/g
它可以满足大多数条件,除非{tag}中有/多个点。
请提前帮助并表示感谢。
答案 0 :(得分:2)
您可以尝试使用以下正则表达式:
({([\w\.]*)})
您的比赛将有两个捕获组:
{user.firstName}
user.firstName
答案 1 :(得分:0)
编辑2:根据从@melpomene收到的评论
var reg = /{([\w(.*\w)*]+)}/g;
var string = "{x}Dear {user.firstName},<br><br> Thank you for buying {item} with us. <br><br>Your Order ID is : <b> {{orderId}} </b>. <br><br> Thank again for supporting us.";
var result = null;
while(result = reg.exec(string))
console.log(result[1]);
&#13;