MeteorJS 允许注入锚标签
MeteorJS allow injection of anchor tag
我有一个从数据库读取的基本聊天。每条聊天消息都是通过这个从数据库中读取的。
<span>{{formatChat text}}</span>
text 是阅读的消息。
然后我使用 formatChat registerHelper 来检测 URL。
Template.registerHelper('formatChat', function(text) {
var urlRegex = /https?:\/\/([a-zA-Z0-9\-\.]+)(\.[a-zA-Z0-9]+)((([a-zA-Z0-9\?\=\/])+)?((\#|\?)(.+)?)?)?$/
var urlRegexMini = /(www(\d{0,3})\.)?([a-zA-Z0-9\-\.]+)(\.(com|net|org|gov|co\.uk|edu|io\b)+)([a-zA-Z0-9\?\=\/]+((([a-zA-Z0-9\?\=\/])+)?((\#|\?)(.+)?)?)?)?$/
finalString = "";
//Parse every word individually
split = text.split(' ');
for (i = 0; i < split.length; i++) {
finalString += " ";
if (urlRegex.test(split[i])) {
finalString += "<a href='" + split[i] + "'>" + split[i] + "</a>";
}
else if (urlRegexMini.test(split[i])) {
finalString += "<a href='http://" + split[i] + "'>" + split[i] + "</a>";
}else{
finalString += split[i];
}
}
return finalString.substring(1,finalString.length);
});
问题是 meteor 不允许注入,所以它会将锚标记显示为纯文本。
我想到的一个解决方案是为每个单词设置一个 registerHelper,但这似乎很愚蠢。
我怎样才能有效地绕过这个规则?
我认为应该这样做:
{{{formatChat text}}}
我有一个从数据库读取的基本聊天。每条聊天消息都是通过这个从数据库中读取的。
<span>{{formatChat text}}</span>
text 是阅读的消息。 然后我使用 formatChat registerHelper 来检测 URL。
Template.registerHelper('formatChat', function(text) {
var urlRegex = /https?:\/\/([a-zA-Z0-9\-\.]+)(\.[a-zA-Z0-9]+)((([a-zA-Z0-9\?\=\/])+)?((\#|\?)(.+)?)?)?$/
var urlRegexMini = /(www(\d{0,3})\.)?([a-zA-Z0-9\-\.]+)(\.(com|net|org|gov|co\.uk|edu|io\b)+)([a-zA-Z0-9\?\=\/]+((([a-zA-Z0-9\?\=\/])+)?((\#|\?)(.+)?)?)?)?$/
finalString = "";
//Parse every word individually
split = text.split(' ');
for (i = 0; i < split.length; i++) {
finalString += " ";
if (urlRegex.test(split[i])) {
finalString += "<a href='" + split[i] + "'>" + split[i] + "</a>";
}
else if (urlRegexMini.test(split[i])) {
finalString += "<a href='http://" + split[i] + "'>" + split[i] + "</a>";
}else{
finalString += split[i];
}
}
return finalString.substring(1,finalString.length);
});
问题是 meteor 不允许注入,所以它会将锚标记显示为纯文本。
我想到的一个解决方案是为每个单词设置一个 registerHelper,但这似乎很愚蠢。
我怎样才能有效地绕过这个规则?
我认为应该这样做:
{{{formatChat text}}}