按顺序找到特殊的标记,并对中间的文本做些什么
Find special markers in sequence and do something to the text in between
我想做一些类似于stackexchange中的短代码的事情。
所以基本上,我想用不同的标记来包装文本,并相应地用特定的类将它们.wrap()
封装在跨度中。。。同时还去除了曾经存在的标记。
我用jQuery找到了这个"在两个引号之间查找文本",但它几乎没有帮助,因为我只能让它按原样工作。
这进一步解释了:http://jsfiddle.net/ALfsT/3/
我不知道该怎么办。
感谢@Guffa在这里的帮助
http://jsfiddle.net/mplungjan/AkCED/
var res = {
boldIt:/'*'*(.*?)'*'*/g,
underlineIt:/'_'_(.*?)'_'_/g
}
var txt = $( "#texts" ).html();
$.each(res, function(type, re) {
txt = txt.replace( re, '<span class="'+type+'" >$1</span>' );
});
$( "#texts" ).html(txt);
更新:
现在我们需要编写这样的代码http://jsfiddle.net/mplungjan/bhTAM/
你改成了class=text,我又改回id=text,效果更好
var res = {
boldIt:{re:/'*'*(.*?)'*'*/g,tag:"span"},
underlineIt:{re:/'_'_(.*?)'_'_/g,tag:"span"},
italicIt:{re:/'/'/(.*?)'/'//g,tag:"span"},
titleIt:{re:/'='=(.*?)'='=/g,tag:"h1"},
linkIt:{re:/'#'#(.*?)':(.*?)'#'#/g, tag:"a"},
imageIt:{re:/'"'"(.*?)':(.*?)'"'"/g, tag:"img"}
}
var s = $("#texts").html();
$.each(res, function(type, obj) {
if(s) s = s.replace(obj.re,'<'+obj.tag+' class="'+type+'" >$1</'+obj.tag+'>');
});
$("#texts").html(s);
您需要转义*
字符:/'*'*(.*?)'*'*/
我还建议您使用回调函数来包装文本:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace
相关文章:
- 更改URL后做些什么
- 检查是否有匹配的类名,然后做些什么
- 当我单击标记而不是删除它时,我应该做些什么来创建自定义菜单
- 我在 MAP 初始化时创建了一个默认标记,但标记没有显示内容?我能为它做些什么
- 客户端,我能做些什么来检查是否有人在入侵我的网站
- 简单的SSL-我需要做些什么来制作我的ajax'd登录SSL安全
- 对单选按钮选择更改AngularJS做些什么
- 在jQuery中查找特定元素's.每个函数并用它做些什么
- 我需要做些什么才能让它显示所有的用户输入/选择
- 我可以做些什么来让我网站上的Javascript代码与Firefox一起工作
- javascript杀死了我的另一个脚本.我能做些什么来隔离它
- 在通过JavaScript将JSON数据插入页面之前,应该对其做些什么?
- 第一个更大的javascript / jquery网站即将完成-上线前要做些什么
- 我需要做些什么才能让账户进入我的流星项目工作
- 为了传递关于JavaScript函数作用域的教程,我必须对变量count做些什么?
- 上面的代码在chrome和firefox上都运行良好.但在IE中这不会给保存弹出框!我应该做些什么来支持这些代码?
- 如果我们希望PHP中的数据保存在同一个文件中,我们能做些什么来代替javascript中的ajax调用呢?
- 我能做些什么来阻止由这段代码引起的轻微页面延迟吗?
- 按顺序找到特殊的标记,并对中间的文本做些什么
- 当手表被“毁坏”时,我需要做些什么来清理它们吗?