0

由于某些原因,我在关键字中添加了零宽度连接符。我想在关键字位于新行开头时排除添加它,但我无法再次删除它。

我猜这个问题有两个原因,但我不知道在这两种情况下如何解决这个问题:

1-错误使用\n\r检测行的开始?

2-当我在添加连接器后检查生成的 html 时,我看到添加‍的内容被双引号包裹,如 "‍". 尝试删除它们时是否需要考虑这些引用?

var tail="\u200D";
var keyword="است";

var htm=$("#test").html();

//Adding joiner to keywords
htm=htm.split(keyword).join(tail+'<span class="red">'+tail+keyword+tail+'</span>'+tail);

//Removing all possible combination of joiner with new lines
htm=htm.split('\r\n'+tail).join('\r\n');
htm=htm.split('\n'+tail).join('\n');
htm=htm.split('\r'+tail).join('\r');
htm=htm.split('\r\n'+'<span class="red">'+tail).join('\r\n'+'<span class="red">');
htm=htm.split('\n'+'<span class="red">'+tail).join('\n'+'<span class="red">');
htm=htm.split('\r'+'<span class="red">'+tail).join('\r'+'<span class="red">');

 $("#test").html(htm);
div{font-size:36pt;}
.red{color:red}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="test">استکان</div>

4

1 回答 1

0

使用.text()而不是.html()搜索:

if($("#test").text().startsWith(tail)) 
    $("#test").html($("#test").html().replace(tail, ''));
于 2019-03-21T21:57:06.720 回答