-1

我有一些想要使用 JQuery 转换为 HTML 的副本。

以下是我在 textarea 中使用的文本示例:

    Monday 28th October 2013

    18:30 Some text 

    17:30 Another bit of text 

    Day two Tuesday 29th October 2013

    11:00 Some title goes here

    • Point 1

    • Point 2

    • Point 3

    Some text to go here

    18:30 Some text 

我正在尝试将使用 • 符号创建的列表转换为包含在 ul 标记中的正确 html 列表,同时删除符号。我也想让任何时间加粗。

这将是预期的结果:

<b>11:00</b> Some title goes here

<ul>
<li>Point 1</li>
<li>Point 2</li>
<li>Point 3</li>
</ul>

我对正则表达式知之甚少,在这个特定问题上找不到任何资源,所以任何指针都会非常感激!

我尝试使用以下代码使时间变粗,但由于某种原因我无法让它工作:

var oldHtml = $('textarea').html();
var newHtml = oldHtml.replace(^\d{2}:\d{2}$)/g,"<b>$1</b>");
$('textarea').html(newHtml);​

提前致谢。

4

1 回答 1

3

考虑您有以下 HTML textarea 和 div 来显示 html

<div id="display">Entered html will show here</div>
<textarea id="markup"></textarea>

首先你需要分割线

var lines = $('#markup').val().split(/\n/);
var html = '';

然后遍历你的行并检查以 • 开头的行。</p>

for(var i = 0; i < lines.length; i++){
   if(lines[i].match(/^(•|\t)/)) {
      html += '<li>'+lines[i].replace('•', '').replace('\t','')+'</li>';
   } else {
      html += lines[i];
   }
}

现在您可以执行以下操作以在某些 div 中显示新格式化的 html

$('#display').html(html);
于 2013-10-29T14:00:33.133 回答