我正在将纯文本菜单/命令结构转换为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
答案 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包含菜单文本。它实际上非常好用。