무료 자바 스크립트를 사용하여 웹 사이트의 텍스트를 검색하고 강조 표시합니다. 검색 동작이 단어의 일부인 경우 구멍 단어가 강조 표시되어야합니다. 예 : "stackoverflow"보다 "over"검색이 강조 표시되어야합니다.Javascript : 돌연변이 된 모음, 움라우트가있는 검색 및 splitText
그래서 첫 번째 단계는 전체 단어의 시작을 선택 정규식을 사용하여 텍스트를 검색하고 시작 위치를 반환하는 것입니다 :
var string='over'; //String to search
var pattern= new RegExp("[a-zA-Záéíóäëiöúàèììùüß-]*"+string,'i');
var position = node.data.toUpperCase().search(pattern);
다음 하이라이트 함수를 호출하는 것입니다 .... 시작 위치를 사용하고, 단어의 마지막 문자 (endbit)를 검출
if (position >= 0)
return highlight(node, position, string);
else
return 0;
...
function highlight(node, position, string){
var middlebit = node.splitText(position);
var endbit = middlebit.splitText(middlebit.data.search(/[^a-zA-Záéíóäëiöúàèììùüß-]/));
[...] next: highlight the word...
,174,
돌연변이 된 모음, 움라우트 등을 사용하지 않는 한 잘 작동합니다. 예 : 넘어서 검색하면 전체 단어 "stackoverflow"가 강조 표시됩니다. "würstchen"(예 : bratwürstchen)을 검색하면 작동하지 않습니다. 이
var position = node.data.toUpperCase().search(pattern);
또는
var middlebit = node.splitText(position);
특수 문자의 종류와 작동하지 않습니다, 같은 lookes.
누구나 그 문제를 어떻게 풀릴 수 있을지 생각해보십시오.
내 자신의 질문에 대답하기 위해, 당신에게Bndr
아무것도? http://stackoverflow.com/search?q=regex+OR+regexp+umlaut – mplungjan