检测字符串中的“pattern”并用javascript(angular)</sup>包装<sup>标签

时间:2013-09-11 13:55:13

标签: javascript angularjs

基本上我想要实现的目标如下:

页面上的所有文本都是从JSON文件中提供的。我有一个服务,解析并打印到文档没有问题。我现在的问题是,当这个文本被写入json时,我对它的控制有限,我需要检测方括号内的任何内容[Like This 2011]并将其包装在标签中。

如果有人可以帮助我解决这个问题并且可能建议在angularjs世界中实现它的最佳方法,我会很感激..(在控制器上做?服务?在视图本身?)< / p>

非常感谢 Ť

2 个答案:

答案 0 :(得分:2)

构建一个过滤器,用于实现带有括号标记的转换JS字符串的逻辑 - &gt;带有普通标签的HTML字符串。

Writing a filter很简单。它内部的逻辑可能更复杂,具体取决于您的需求。编写过滤器(让我们将其命名为bracketXformer)后,其用法为:

模型示例:

$scope.pageContent = {
    title: "The Title",
    content: "Bla bla [bla]"
};

模板示例:

<h2>{{ pageContent.title }}</h2>
<p>{{ pageContent.content | bracketXformer }}</p>

还在Javascript中搜索Markdown实现(例如Showdown)。如果它与您的用例匹配,可以节省您实施过滤器的时间。如果Markdown适合你,也可以使用Angular指令查看here

答案 1 :(得分:1)

使用正则表达式

var text = 'some text [sup stuff] here';

document.write(text.replace(/\[(.*)\]/g, '<sup>$1</sup>'));

jsfiddle:http://jsfiddle.net/uH9x2/