我想做一些类似于 stackexchange 中的简码的事情。
所以基本上我想用不同的标记包装文本,并相应地将它们 .wrap()
放在具有特定类的范围内……同时删除曾经存在的标记。
我找到了这个 Find Text Between 2 Quotes with 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=texts 我改回 id=texts 效果更好
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);
关于javascript - 按顺序查找特殊标记并对中间的文本执行某些操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6995554/