Не могу снова удалить символ, который я добавил с помощью JS - PullRequest
0 голосов
/ 22 марта 2019

По некоторым причинам я добавляю столяр нулевой ширины к ключевому слову. Я хочу исключить добавление, когда ключевое слово находится в начале новой строки, но я не могу удалить его снова.

Я предполагаю две причины этой проблемы, но я не знаю, как решить проблему в обоих случаях:

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>

1 Ответ

0 голосов
/ 22 марта 2019

используйте .text() вместо .html() для поиска:

if($("#test").text().startsWith(tail)) 
    $("#test").html($("#test").html().replace(tail, ''));
...