javascript - 按顺序查找特殊标记并对中间的文本执行某些操作

标签 javascript jquery replace

我想做一些类似于 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/

相关文章:

jquery - 生成带有虚线填充线的 SVG 矩形

javascript - Javascript 中replace() 或 substr() 的性能

javascript - 尝试将 React/Ajax 调用与 Spring MVC 和 Thymeleaf 结合使用

javascript - 谷歌地图 API 函数 map.getCenter()

javascript - jQuery "find"方法替代

jquery - 将值变量检索到jquery

javascript - 在angularjs中自定义自动完成

javascript - Object.create 相对于构造函数有什么实际优势?

java - 如何用 java 将换行符替换为 "\n"?

sql - TSQL 使用子字符串替换也会替换字符串的其他部分