다음 문자열이있는 경우 : This is another song you should listen to
단어 수에 따라 단어를 강조 표시하는 기능을 작성하려고했습니다. 예를 들어, highlightWord(originalString,nthWord)
과 같은 방법으로 네 번째 단어를 강조하고 싶습니다.자바 스크립트의 단어 수를 기준으로 단어 강조 표시
This is another <span class=\"highlighted\">song</span> you should listen to
이 내가 검색 문자열 (regexMatch = "is")
을 전달하여, 하나를 쓴 highlightMatch
기능을 사용하려고했으나 문제는이 (가) This
대신 is
에 강조한다는 것입니다 : : 그리고 문자열이 반환 될
function highlightNthWord(string,n) {
var m = string.match(new RegExp('^(?:\\w+\\W+){' + n + '}(\\w+)'));
return m && '<b>'+m[1]+'</b>';
}
:
function highlightMatch(originalValue,regexMatch) {
var tempInnerHTML = stripTags(originalValue);
originalValue.innerHTML = tempInnerHTML.replace(regexMatch,'<span class="highlighted">'+regexMatch+'</span>');
}
나는이 highlightNthWord 방법을 사용하여 시도
그러나이 단어는 n 번째 단어가 강조 표시된 전체 문장이 아니라 강조 표시된 n 번째 단어 만 반환합니다. 자바 스크립트 만 사용하고 싶습니다 (jquery 없음).
당신은 문자열에 공간이 분할 한 후 다시 문자열을 구축 할 수 있습니다
['및'에 가입) ('사용하여 분할 시도 ()'] (https://jsfiddle.net/tusharj/wo6u1z82/1/) – Tushar
확실히 잔인한 사람이지만, 전에 비슷한 질문에 대답했다 : http://stackoverflow.com/questions/15958020/variabl e-inside-a-string-inside-a-string/15959797 # 15959797 – plalx