找回密码
 立即注册

QQ登录

只需一步,快速开始

编辑器 ubb转换 js函数

[点击打赏获取Discuz!x layui兼容开发实例]
最近需要整合layedit到discuz插件,每次提交都会出现内容非法提示,兼容解决方式就是将文本内容进行ubb然后存库。

ubb转换js如下:
  1. function htmlToUbb(str){
  2.             //str = str.replace(/(\r\n|\n|\r)/ig, '');
  3.             str = str.replace(/<br[^>]*>/ig,'\n');
  4.             str = str.replace(/<p[^>\/]*\/>/ig,'\n');
  5.             //str = str.replace(/\[code\](.+?)\[\/code\]/ig, function($1, $2) {return phpcode($2);});
  6.             str = str.replace(/\son[\w]{3,16}\s?=\s*([\'"]).+?\1/ig,'');

  7.             str = str.replace(/<hr[^>]*>/ig,'[hr]');
  8.             str = str.replace(/<(sub|sup|u|strike|b|i|pre)>/ig,'[$1]');
  9.             str = str.replace(/<\/(sub|sup|u|strike|b|i|pre)>/ig,'[/$1]');
  10.             str = str.replace(/<(\/)?strong>/ig,'[$1b]');
  11.             str = str.replace(/<(\/)?em>/ig,'[$1i]');
  12.             str = str.replace(/<(\/)?blockquote([^>]*)>/ig,'[$1blockquote]');

  13.             str = str.replace(/<img[^>]*smile="(\d+)"[^>]*>/ig,'[s:$1]');
  14.             str = str.replace(/<img[^>]*src=[\'"\s]*([^\s\'"]+)[^>]*>/ig,'[img]'+'$1'+'[/img]');
  15.             str = str.replace(/<a[^>]*href=[\'"\s]*([^\s\'"]*)[^>]*>(.+?)<\/a>/ig,'[url=$1]'+'$2'+'[/url]');
  16.             //str = str.replace(/<h([1-6]+)([^>]*)>(.*?)<\/h\1>/ig,function($1,$2,$3,$4){return h($3,$4,$2);});

  17.             str = str.replace(/<[^>]*?>/ig, '');
  18.             str = str.replace(/&amp;/ig, '&');
  19.             str = str.replace(/&lt;/ig, '<');
  20.             str = str.replace(/&gt;/ig, '>');

  21.             return str;
  22.         }
  23.         
  24.         function ubbToHtml(str){
  25.             str = str.replace(/</ig,'&lt;');
  26.             str = str.replace(/>/ig,'&gt;');
  27.             str = str.replace(/\n/ig,'<br />');
  28.             //str = str.replace(/\[code\](.+?)\[\/code\]/ig, function($1, $2) {return phpCode($2);});

  29.             str = str.replace(/\[hr\]/ig,'<hr />');
  30.             str = str.replace(/\[\/(size|color|font|backcolor)\]/ig,'</font>');
  31.             str = str.replace(/\[(sub|sup|u|i|strike|b|blockquote|li)\]/ig,'<$1>');
  32.             str = str.replace(/\[\/(sub|sup|u|i|strike|b|blockquote|li)\]/ig,'</$1>');
  33.             str = str.replace(/\[\/align\]/ig,'</p>');
  34.             str = str.replace(/\[(\/)?h([1-6])\]/ig,'<$1h$2>');

  35.             str = str.replace(/\[align=(left|center|right|justify)\]/ig,'<p align="$1">');
  36.             str = str.replace(/\[size=(\d+?)\]/ig,'<font size="$1">');
  37.             str = str.replace(/\[color=([^\[\<]+?)\]/ig, '<font color="$1">');
  38.             str = str.replace(/\[backcolor=([^\[\<]+?)\]/ig, '<font style="background-color:$1">');
  39.             str = str.replace(/\[font=([^\[\<]+?)\]/ig, '<font face="$1">');
  40.             str = str.replace(/\[list=(a|A|1)\](.+?)\[\/list\]/ig,'<ol type="$1">$2</ol>');
  41.             str = str.replace(/\[(\/)?list\]/ig,'<$1ul>');

  42.             //str = str.replace(/\[s:(\d+)\]/ig,function($1,$2){ return smilePath($2);});
  43.             str = str.replace(/\[img\]([^\[]*)\[\/img\]/ig,'<img src="$1" border="0" />');
  44.             str = str.replace(/\[url=([^\]]+)\]([^\[]+)\[\/url\]/ig, '<a href="$1">'+'$2'+'</a>');
  45.             str = str.replace(/\[url\]([^\[]+)\[\/url\]/ig, '<a href="$1">'+'$1'+'</a>');
  46.             return str;
  47.         }
复制代码


游客,如果您要查看本帖隐藏内容请回复

本教程由无限星辰工作室CRX349独家整理和提供,转载请注明地址,谢谢。本文地址:https://xmspace.net/thread-984-1-1.html
无限星辰工作室  好集导航 Discuz全集下载  星辰站长网  集热爱361  一品文学  手机小游戏合集   海外空间网 星辰api  星辰支付二维码管理平台 LOT智能硬件聚合平台 阿里云服务器 腾讯云服务器
服务Discuz!建站|DiscuzQ配置|二开|小程序|APP|搬家|挂马清理|防护|Win/Linux环境搭建|优化|运维|
服务理念:专业 诚信 友好QQ842062626 服务项目 Q群315524225

发表于 2023-7-27 12:28:15 | 显示全部楼层 |阅读模式

回复 | 使用道具 举报

该帖共收到 0 条回复!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

美图秀

    • 自建远程桌面服务器 rustdesk
    • Discuz!x3.4 账号保镖 自动冻结账号无效解
    • PVE换主板后 网络丢失解决方法
    • Kvm 虚拟机迁移到PVE里面
    • Discuz!x3,4 阿里云DCDN配置获取客户端ip
拖动客服框
Online Service
点击这里给我发消息
点击这里联系我们
微信扫一扫
在线客服
快速回复 返回顶部 返回列表