jsf中两个字符串的颜色代码差异

Color code difference in 2 strings in jsf

本文关键字:颜色 代码 字符串 两个 jsf      更新时间:2023-09-26

我有一个要求,需要对两个字符串之间不同的字符进行颜色编码。例如,如果两个字符串是abcd1234dfabdc1256dg,则位置3、4、7、8、10的第一个字符串中的字符需要显示为红色

我正在使用Jsf 2.0richfaces 4,我需要这个解决方案在性能方面是可行的,因为这必须在大约50个字符串的循环中完成。这些字符串是包含50行的富数据表中的列。我应该在哪里调用javascript方法,以便富数据表中的一列获得颜色编码的

下面用javascript快速介绍一下。这将返回一个带有字母的<p>标记,以及一个用类"different"标记的不同内容的跨度。

所以,如果你有像这样的css

.different{
   /*color: red;*/
   font-weight:bold;
}

然后你运行diffString('abcd1234df','abdc1256dg'),得到这个:

abcd1234df

实际回报:<p>ab<span class='different'>c</span><span class='different'>d</span>12<span class='different'>3</span><span class='different'>4</span>d<span class='different'>f</span></p>

这是我的代码:

function diffString(originalString, compareString){    
  var returnString = "<p>";    
  for(var i=0, child; child=originalString[i]; i++){    
    if(child != compareString[i]){    
      returnString += "<span class='different'>" + child + "</span>";    
    }    
    else{    
      returnString += child;      
    }    
  }    
  returnString += "</p>";    
  return returnString;    
}