将文本菜单转换为JavaScript中的HTML链接

时间:2010-11-23 22:36:28

标签: javascript regex

我正在将纯文本菜单/命令结构转换为JavaScript中的HTML链接。我收到的文字范围是:

<span>1. First option           2. Second option       </span>
<span>3. Third option                                  </span>

我想要每个菜单项的链接,链接文本为“第一个选项”,“第二个选项”等。主要问题是跨度有空白区域:在它们之前,我需要保留跨度内的所有空间。也就是说,每个范围内的文本长度不能改变。

我已经能够使用子模式和替换方法创建带有正则表达式的链接,但我似乎既不选择整个范围,也不能在子模式中使用空格。这就是我所做的,它将同一个跨度中的两个链接分开,但留在空格中:/(\d*)\.\s*([a-zA-Z][a-zA-Z\s]*)/g

2 个答案:

答案 0 :(得分:0)

使用jquery:

var links='';
$('span').each(function(){
var text = this.innerText.replace(" ","");
var a= '<a href="#">' + text + '</a>';
links += a;
});

$('span').parent().html(links);

答案 1 :(得分:0)

我必须学习负面的向前看:)这是我得到的:

  

/((\ d +)\ S。)((:[^ \ d \ S] | \ S((?:\ S * \ d *)|(:?!??\ S * $) )| \ d:))*)/ G

((\ d * \ S?!?)。

$ 1包含'1。 ',$ 2包含'1',$ 3包含菜单文本。它实际上非常好用。