gpt4 book ai didi

javascript - AngularJS - 突出显示部分文本会导致非英语单词损坏

转载 作者:行者123 更新时间:2023-11-29 21:16:48 24 4
gpt4 key购买 nike

在下面的代码片段中,我试图突出显示与阿拉伯语搜索输入匹配的单词的每个部分,但这会使文本中的字母分开。我该如何解决这个问题?

尝试在字段中输入مست,你会看到问题。

angular.module("myApp", [])
.controller("main", function($scope){
$scope.content="تتيح لك إدارة المستخدمين العديد من الخدمات الأساسية كعرض مستخدمي النظام والتعديل عليها وحذفها.. إضافة إلى عمليات الفلترة عليهابناء على عدة خيارات متاحة "
})
.filter('highlight', function ($sce) {
return function (text, searchSrting) {
if(searchSrting){
searchSrting = searchSrting.split(/\s+/);
if(typeof text !== "undefined")
for (var i = 0; i < searchSrting.length; i++) {
text = text.replace(new RegExp('(' + searchSrting[i] + ')', 'gi'),
'<span class="highlighted">$1</span>')
}
return $sce.trustAsHtml(text)
}
}
})
.highlighted{
background-color : yellow
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.7/angular.js"></script>

<div ng-app="myApp">
<div ng-controller="main">
<label>search</label>
<input ng-model="searchString"/>
<div ng-if="!searchString">{{content}}</div>
<div ng-if="searchString" ng-bind-html="content | highlight:searchString"></div>

</div>
</div>

最佳答案

添加两个 zero-width-joiners在突出显示范围之前和结束时使字符正确连接:

text = text.replace(new RegExp('(' + searchSrting[i] + ')', 'gi'),
'&zwj;<span class="highlighted">$1&zwj;</span>')

关于javascript - AngularJS - 突出显示部分文本会导致非英语单词损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39064199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com