我最终试图在Javascript中使用带有各种标点符号的希伯来语字符串,并在单词和标点符号上添加单独的span标记(使单词可点击)。
例如,字符串“האלה,(הופעה){פג}פה@גם...פה”
应该给出一个以这样的["האלה", ",", "(", "הופעה".....etc]
关键是要把所有实际的单词分别放在一个数组中,并将每个标点符号放在一个单独的数组元素中,然后我就可以遍历它们并根据其字符添加span标签。问题是我需要将它们重新组合成一个字符串,但是当我执行一个简单的.join(“”)时,它会在每个标点符号和每个单词之间添加一个空格,因为它将所有这些都视为单独的单词
那么我该如何将标点符号组合回原来的单词但又与原始单词连接在一起,或者以其他方式完成此跨度的包装?
这是我代码的相关部分,除了空格部分外,其余部分都有效:
var reg= /([^\u0590-\u05FF\"\']+)/g;
var nReg=new RegExp("\\w+|\\W+", "g");
var fixed=Html.split(" ").map((z, i)=>{ return z.replace(nReg, f => {if(reg.test(z)){ return "<span class=nothing>"+z.match(reg)[0]+"</span>"} else return "<span class=shtikle>"+z+"</span>"})}).join(" ");
“ fixed”是附加到文档的变量,而Html是原始字符串。我没有弄错,但这是结果的屏幕截图: