2
나는 문자열, 검색어에 소요 CFScript를, 옵션 강조 옵션을 사용하여 검색어와 문자열을 반환하고 강조 :강조 검색 결과 문자열의 경우 문제
<cfscript>
string function highlightKeywords(required string str, required string keywords, struct highlight){
var keyword = "";
var replacement = "";
param name="highlight.tag" default="span";
param name="highlight.attributes" default="style='color:rgb(255,102,0);'";
for (var index=1; index <= listLen(arguments.keywords, " "); index++){
keyword = ReReplace(listGetAt(arguments.keywords, index, " "), "\(|\)", "", "all");
replacement = "<#highlight.tag#";
if (len(highlight.attributes)){
replacement &= " #highlight.attributes#";
}
replacement &= ">" & keyword & "</#highlight.tag#>";
arguments.str = reReplaceNoCase(arguments.str, "\b#keyword#\b", replacement, "all");
}
return arguments.str;
}
</cfscript>
모든 것이 잘 동작하는 것, 하나의 문제는 제외. 원래 문자열의 대소 문자를 변경합니다.
예를 들어 사용자가 "강조 표시 검색"을 검색하고 원래 문자열이 "강조 표시 검색 테스트"로 저장되어있는 경우. "강조 표시 검색 테스트"가 반환 될 것으로 예상됩니다. 대신 "강조 검색 테스트"를 반환했습니다. 그것은 원래 사건을 유지하는 대신 사용자가 입력 한 것과 대소 문자를 교체했습니다. 누군가 나를 도와 줄 수 있습니까? 미리 감사드립니다.
추가 참고 : CF는 역 참조로 작동합니다.
'교체 & = ""> & 키워드 & " # highlight.tag #>"; '=>'대체 & = "> $ & lt;/# highlight.tag #> "; ' –
@ WiktorStribiżew 시도했지만 작동하지 않습니다. 강조 표시된 단어는 '$ &'가되었습니다. 나는 'This is ** $ & ** Testing'이다. – Jack
@ WiktorStribiżew 미안하지만 당신이 의미하는 바를 이해하지 못한다. 솔루션으로 추가 할 수 있습니까? – Jack