javasrcipt实现简单UBB代码方法
// UBB代码简单实现 lxin v0.1beta;
function filter(s)...{
//替换[b][/b][i][i]
s=s.replace(/</g,"<");
s=s.replace(/>/g,">");
s=s.replace(/[b]/g,"<b>");
s=s.replace(/[/b]/g,"</b>");
s=s.replace(/[i]/g,"<i>");
s=s.replace(/[/i]/g,"</i>");
//~~~~~
//替换[size=*][/size]
var ts=s;//临时变量
var i=0;//记录匹配到了什么地方
while(ts.match(/[size=d...{1,2}]/)!=null)...{
var t=ts.match(/[size=d...{1,2}]/);//获得匹配的
i=ts.indexOf(t)+t.length;//获得下次开始匹配的位置
var ss=t.toString();//必要
var size=parseInt(ss.substring(ss.indexOf("=")+1));//获得[size=*] 的*;
ss=ss.replace(/[/g,"/[");//注意Stirng里也是转意符
ss=ss.replace(/]/g,"/]");
//alert(ss);
s=s.replace(new RegExp(ss,"g"),"<font size="+size+" >")//将[size=*]替换为<font size=*>
if(ts.length>i)ts=ts.substring(i);//冲这次匹配字符的后一个字符开始再次匹配;
else ts="";
}
s=s.replace(/[/size]/g,"</font>");
//~~~~~
//替换[link=*][/link]
ts=s;//临时变量
i=0;//记录匹配到了什么地方
while(ts.match(/[link="[^"]*"]/)!=null){
var t=ts.match(/[link="[^"]*"]/);//获得匹配的
i=ts.indexOf(t)+t.length;//获得下次开始匹配的位置
var ss=t.toString();//必要
var linked=ss.substring(ss.indexOf("="")+2,ss.indexOf(""]"));//获得[link="*"] 的*;
ss=ss.replace(/[/g,"/[");//注意Stirng里也是转意符
ss=ss.replace(/]/g,"/]");
//alert(ss);
if(linked.match(/http:///)==null)linked="http://"+linked;
s=s.replace(new RegExp(ss,"g"),"<a href=""+linked+"" >")//将[link=*]替换为<a href=*>
if(ts.length>i)ts=ts.substring(i);//冲这次匹配字符的后一个字符开始再次匹配;
else ts="";
}
s=s.replace(/[/link]/g,"</a>");
//~~~~~
//替换[color=*][/color]
ts=s;//临时变量
i=0;//记录匹配到了什么地方
while(ts.match(/[color="[#]?w*"]/)!=null)...{
var t=ts.match(/[color="[#]?w*"]/);//获得匹配的
i=ts.indexOf(t)+t.length;//获得下次开始匹配的位置
var ss=t.toString();//必要
var color=ss.substring(ss.indexOf("="")+2,ss.indexOf(""]"));//获得[color="*"] 的*;
ss=ss.replace(/[/g,"/[");//注意Stirng里也是转意符
ss=ss.replace(/]/g,"/]");
//alert(ss);
s=s.replace(new RegExp(ss,"g"),"<font color=""+color+"" >")//将[color=*]替换为<font color="*">
if(ts.length>i)ts=ts.substring(i);//冲这次匹配字符的后一个字符开始再次匹配;
else ts="";
}
s=s.replace(/[/color]/g,"</font>");
s=s.replace(/ /g,"<br>");
//~~~~~
//替换[link=*][/link]
ts=s;//临时变量
i=0;//记录匹配到了什么地方
while(ts.match(/[img="[^"]*"]/)!=null){
var t=ts.match(/[img="[^"]*"]/);//获得匹配的
i=ts.indexOf(t)+t.length;//获得下次开始匹配的位置
var ss=t.toString();//必要
var linked=ss.substring(ss.indexOf("="")+2,ss.indexOf(""]"));//获得[img="*"] 的*;
ss=ss.replace(/[/g,"/[");//注意Stirng里也是转意符
ss=ss.replace(/]/g,"/]");
//alert(ss);
if(linked.match(/http:///)==null)linked="http://"+linked;
s=s.replace(new RegExp(ss,"g"),"<img src=""+linked+"" >")//将[link=*]替换为<a href=*>
if(ts.length>i)ts=ts.substring(i);//冲这次匹配字符的后一个字符开始再次匹配;
else ts="";
}
//~~~~~
return s;
}
javasrcipt实现简单UBB代码方法相关推荐
- 用html实现模糊效果,css实现简单背景模糊的方法(代码示例)
本篇文章给大家带来的内容是介绍css实现简单背景模糊的方法(代码示例).有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 使用filter属性来设置模糊值 效果: css样式: .co ...
- html转ubb php,php实现转换ubb代码的方法
本文实例讲述了php实现转换ubb代码的方法.分享给大家供大家参考.具体如下: function ubb2html($content) { global $article; //是否自动识别 if ( ...
- [Android] Android MVP 架构下 最简单的 代码实现
Android MVP 架构下 最简单的 代码实现 首先看图: 上图是MVP,下图是MVC MVP和MVC的区别,在于以前的View层不仅要和model层交互,还要和controller层交互.而 ...
- vba 编辑combobox内容_初识Visual Basic编辑器并建立一段简单的代码
大家好,从今日开始我正式推出"VBA之EXCEL应用"教程,这个教程是面向初学人员的教程,教程一共三册,十七个章节,从简单的录制宏实现一直讲到窗体的搭建,都是我们在利用EXCEL工 ...
- Unity 简单示例代码和向导/Unity Aplication Block
Unity 简单示例代码和向导 关于Unity 的说明和下载地址,请访问[微软控制反转和依赖注入容器Unity 1.0发布] http://forum.entlib.com/Default.aspx? ...
- js/jq基础(日常整理记录)-2-一个简单的js方法实现集合的非引用拷贝
一.一个简单的js方法实现集合拷贝 做web项目的时候,少不了和js中的数组,集合等对象接触,那么你肯定会发现,在js中存在一个怪异的现象就是数组和集合的拷贝都是地址复制,并不是简单的数据的拷贝. 举 ...
- 原生js写三级联动 java_原生js三级联动的简单实现代码
本文实例为大家分享了js查询天气应用,供大家参考,具体内容如下 实现功能:打开网页时显示用户所在城市的天气状况,在输入框输入城市可查询其它城市. 实现过程:先调用百度地图的API来获取用户所在的城市, ...
- 段错误产生原因及简单的调试方法
参考:段错误产生原因及简单的调试方法 作者:编程那些年 网址:https://mp.weixin.qq.com/s/KP9ZFn71CO_vB2I4igZLMA 段错误产生原因 1.访问不存在的内存地 ...
- 《Node.js 入门系列》—— 一些简单的排错方法(一)
目录 TypeError: undefined is not a function TypeError: Cannot read property 'xxx' of undefined 或者 Type ...
最新文章
- [物理学与PDEs]第2章习题13 将 $p$ - 方程组化为守恒律形式的一阶拟线性对称双曲组...
- Sidebar 左右菜单的使用
- python3 局域网udp广播
- 如何画好科技论文中的插图
- 新疆兵团谋定丰收美景-万祥军:对话农民丰收节交易会
- apple tv 开发_如何防止Apple TV进入睡眠状态
- [Java基础]字节流读数据
- C#复数类Complex的封装
- 前端开发 浮动相关的规则 overflow 0229
- PyQt5入门——手把手教你配置环境,快速上手GUI程序开发(Anaconda+PyCharm+Qt Designer+pyuic)
- c语言中栈的作用,栈(Stack)的概念和应用及C语言实现
- java+phantomjs实现动态网页抓取
- 拓端tecdat|R语言使用灰色关联分析(Grey Relation Analysis,GRA)中国经济社会发展指标
- 斩获双奖 | 悬镜安全亮相IDC 2022 CSO全球网络安全峰会
- 大数据项目实训教学解决方案
- IDEA Maven 使用教程
- 【高等数学笔记】变限积分求导问题
- navicat如何连接mysql?navicat 连接mysql Navicat使用教程
- Mybatis-Plus分页查询total始终为0
- 大数据的5大关键技术点