2012-10-11 4 views
2

작은 Javascript/Jquery 함수를 사용하여 요소를 텍스트에 삽입합니다 (아직 그러한 요소가없는 경우).javascript string.replace가 독일어에서 실패합니다. UMLaute

코드는 다음과 같습니다

$(document).ready(function() { 
$(function() { 
    $(".replaceText").html(function (i, text) { 
     if ($('.replaceText > span.dbOrange').length) { 
      return; 
     } 
     else { 
      return text.replace(/\w+\s\w+/, function (match) { 
       return '<span class="dbOrange">' + match + '</span>'; 
      }); 
     } 
    }); 
}); 

});

10 개 중 9 개에서 정상적으로 작동합니다. 처음 두 단어는 주황색과 굵은 글씨로 표시됩니다. 그러나 두 번째 단어에 ä ö ü와 같은 Umlaut가 포함되어 있으면 Regex가이 문자에서 분리되어 단어가 끝나는 것처럼 보입니다.

더 안전한 솔루션을 제공 할 수 있습니까?

종류는

+0

가능한 복제본 : http://stackoverflow.com/questions/280712/javascript-unicode – RASG

답변

1

이 시도 : S \

/\S+\s\S+/ 

공백이 아닌 문자와 일치합니다.

+0

자신을 껴안습니다. 매력처럼 작동 :) – Marco

0

예,이 자바 스크립트 정규 표현식에 비 영어 문자에 대한 일반적인 문제입니다 간주한다. \w에 의해 인식되지 않습니다. 각 특수 문자에 대해 유니 코드 표현 \uXXXXX을 별도로 지정해야합니다.

1

\w is a shorthand for [A-Za-z0-9_]에는 움라우트 문자가 포함되어 있지 않습니다. 다른 범위가 포함되도록하려면 허용되는 문자 세트를 명시 적으로 만들어야합니다.

관련 문제