liuziting 2009-06-19 09:11
浏览 281
已采纳

JS正则表达式如何取下面的字符

例如像javaeye论坛这个编辑器一样的
如果我单击List按钮就会生成下面的列表
[code="java"]
[list]
[*]
[/list]
[/code]

现在我要转换成如下



    • 但是用正则表达式子去不到换行符。。。

      我下的正则表达式如下:
      reg = /[list]\n(.*?)\n[\/list]/g;

      就是没有办法取到
      [code="java"]
      [list]
      [*]
      [/list]
      [/code]

      取到的都是空,还望大家指点
      [b]问题补充:[/b]
      还是没看懂什么意思。能说清楚点吗?

      我把你的代码拷贝到编辑器里运行了,弹出信息,跟我上面的要求有关吗?

      孺子不教,请多指教。
      [b]问题补充:[/b]
      很感谢您的回复。

      目前我也像您一样,做到了这样的一步
      [code="java"]
      var list = '[list]\n[*]\n[/list]';

      var reg = /[list]\n(.*?)\n[\/list]/g;
      [/code]

      定义了上面两个变量,并且写好了如同您给我第一个回答那样的正则表达式。

      我现在画面上有个按钮,就像JAVAEYE网站上编辑器中的List按钮一样(就在您给我回复的时候,上面有按钮可以按出来,有Code,有B等等)。

      同样我按下List按钮,在我的textarea入力框中会显示如下代码
      [code="java"]
      [list]
      [*]
      [/list]
      [/code]

      我是在单击按钮的时候,直接把
      [code="java"]
      var list = '[list]\n[*]\n[/list]';
      [/code]
      值写到了textarea框中,写进去的时候"list"换行显示在了textarea中,和javaeye网站的编辑器一样,换行显示了。问题是,我再去取的时候,用正则表达式去取,并想替换成
      [code="java"]
      [ul]
      [li]
      [ul]
      [/code]
      就怎么也取不到了,我取的方式如下:
      [code="java"]
      var str = "";
      str = $("#editor_text").html();//editor_text就是textarea入力框
      [/code]
      用上面的正则表达式
      [code="java"]
      var reg = /[list]\n(.*?)\n[\/list]/g;
      [/code]
      怎么也匹配替换不到了。
      但是我输入判断语句,确实又存在"\n"
      [code="java"]
      if(text.indexOf("\n") != -1)
      {
      alert("测试是否有换行!");
      }
      [/code]
      测试证明换行确实存在。

      如果您还不明白,简单的说,我就是想做一个和javaeye的【list】按钮一样的功能,并且在预览的时候能看到【ul】的效果。

      谢谢。

      [b]问题补充:[/b]
      你好。
      还是不行,两个取出来的字符串是一样的。
      [code="java"]
      var val = $("#editor_text").val();
      alert(val);
      alert($("#editor_text").html());
      [/code]

      取出来的值都是
      [code="java"]
      [list]
      [*]
      [/list]
      [/code]
      这样的字符串
      [b]问题补充:[/b]
      源代码比较避讳了。实在抱歉。

      你能把你写的发给我看看吗?

      我这里确实取不到啊。

  • 写回答

4条回答

  • ywbanm 2009-06-19 12:16
    关注

    不知道你那为什么不行
    我这试了是可以的
    你能把你的测试脚本发上来么

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料