Javascript 字符串荧光笔支持变音符号和重音符号
您好,我之前发布了关于这个主题的问题,但没有人回答,所以我要举一个简单的例子来说明我想做什么 我创建了一个支持重音和变音的简单荧光灯,如下代码示例所示:Javascript 字符串荧光笔支持变音符号和重音符号,javascript,jquery,highlight,diacritics,Javascript,Jquery,Highlight,Diacritics,您好,我之前发布了关于这个主题的问题,但没有人回答,所以我要举一个简单的例子来说明我想做什么 我创建了一个支持重音和变音的简单荧光灯,如下代码示例所示: <div id="text">selection مُحَمّد séléction SÉLÉCTION محمد محمد</div> .highlight { background-color:yellow; color:red; } //var input ="مُحَمّد"; var input = "
<div id="text">selection مُحَمّد séléction SÉLÉCTION محمد محمد</div>
.highlight {
background-color:yellow;
color:red;
}
//var input ="مُحَمّد";
var input = "SÉLÉCTION";
var t = $("#text").html();
var words = t.split(' ');
function Normlise(s) {
var r=s.toLowerCase();
//var r=s;
r = r.replace(new RegExp("[\u064b-\u0653\u0670]", 'g'),"");
//r = r.replace(new RegExp("\\s", 'g'),"");
r = r.replace(new RegExp("[é]", 'g'),"e");
//r = r.replace(new RegExp("\\W", 'g'),"");
return r;
};
var replacement = function(resultText) {
var resultText="";
for (var i=0; i < words.length; i++) {
var strippedWord = Normlise(words[i]);
var inputWord = Normlise(input);
if (strippedWord == inputWord) {
alert(strippedWord);
resultText += ' '+"<span class='highlight'>"+ words[i]+"</span>"+' ';
}
else
{
resultText += ' '+ words[i]+' ';
}
}
return resultText;
}
$("#text").replaceWith(replacement);
选择
.亮点{
背景颜色:黄色;
颜色:红色;
}
//风险值输入=“مُحَمّد”;
var input=“SÉLÉaction”;
var t=$(“#text”).html();
变量词=t.split(“”);
函数规范化(s){
var r=s.toLowerCase();
//var r=s;
r=r.replace(新的RegExp(“[\u064b-\u0653\u0670]”,'g'),“”);
//r=r.replace(新的RegExp(“\\s”,“g”),”);
r=r.replace(新的RegExp(“[é]”,'g'),'e”);
//r=r.replace(新的RegExp(“\\W”,“g”),”);
返回r;
};
变量替换=函数(resultText){
var resultText=“”;
for(var i=0;i
您可以在线检查脚本以了解其工作原理
现在,当我们要突出强调重音字符时,我们使用定义所有所需字符的类映射,但是如何使用组合标记,比如阿拉伯语中附加的一些字符,我们如何为其制作正确的正则表达式或类映射,而不是像上面的示例中那样将其剥离并进行比较最快方式的示例??
谢谢