여기에서 응용 프로그램 개발에서 웹 개발로 전환하므로 여전히 모든 것을 파악하려고 노력하고 있습니다.
Wordpress에서 페이지 제목과 메뉴의 한자 색상 만 어떻게 변경합니까? CSS로해야하는데 그런 식으로 한자를 감지하는 방법을 잘 모르겠습니다. 어떤 통찰력이라도 대단히 감사하겠습니다!
CSS는 프로그래밍 언어가 아니므로 중국어 문자를 감지 할 수 없습니다. 정규식을 사용하여 유니 코드 문자 범위로 페이지의 개별 문자를 필터링하고 CJKUI 블록에 속하는 문자를 선택해야합니다. 이 범위는 여기에있는 또 다른 질문에서 매우 잘 논의됩니다 . 범위를 요약하려면 :
\u4E00
~\u9FFF
\u3400
to\u4DFF
\u20000
to\u2A6DF
\uF900
~\uFAFF
\u2F800
~\u2FA1F
일반적으로 첫 번째 범위로 충분하지만 희귀하고 날짜가있는 문자가 포함 된 중국어 텍스트로 작업하는 경우 전체 CJKUI 범위를 포함하도록 선택 영역을 확장하는 것이 좋습니다.
그러나 많은 양의 텍스트에 정규식을 사용하면 비용이 많이 드는 일치 작업을 수행 하게됩니다. 중국어 문자가 표시 될 것으로 확신하는 텍스트의 작은 스 니펫에는 여전히 가능합니다. 트릭은 각 문자 의 유니 코드 범위 (Python 태그에서 요청되지만 JS에서도 작동 함) 를 반복적 으로 감지하고 특정 클래스를 <span lang="zh">
사용하여 요소 ( lang
속성을 사용하는 것은 의미 상 유효하고 권장 됨) 내에서 래핑 하여 CSS를 사용하여 원하는대로 스타일을 지정할 수 있습니다.
: 정규식 패턴, 트릭는 문자 범위 선택기를 사용하는 것입니다 [...-...]
(자세히보기 여기 ). 가장 축소 된 CJKUI 세트의 경우 [\u4E00-\u9FFF]
. 그러나 앞에서 언급했듯이 가능한 모든 중국어 유니 코드 문자 와 실제로 일치 시키 려면 전체 세트를 사용해야합니다.[\u4E00-\u9FFF\u3400-\u4DFF\u20000-\u2A6DF\uF900-\uFAFF\u2F800-\u2FA1F]
$(function() {
$('h1, p').each(function() {
var text = $(this).html();
$(this).html(text.replace(/([\u4E00-\u9FFF])/g, '<span lang="zh">$1</span>'));
});
});
span[lang="zh"] {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>Title 馦騜 here</h1>
<p>Lorem ipsum 跣鉌 dolor sit 嬞 amet, consectetur adipiscing elit. 蔍 Aliquam dignissim justo metus, nec rhoncus diam 娀 mollis sed. Pellentesque eu 庣 neque sit amet sapien accumsan accumsan 餳 vel nec quam. Sed rutrum 嬚 id justo quis pretium. Vestibulum 鍹 eu ligula id magna vehicula rhoncus nec a tortor. Integer id 楋dolor vitae mi gravida euismod ac eget 馻 dui. Pellentesque eu enim at erat 嬔 pellentesque posuere. Duis ligula magna, pretium sed 騧 sagittis eu, mollis a nibh. Integer ultrices 噈 molestie scelerisque. Maecenas 羭聧蔩 eget nulla sodales, pulvinar magna non, 嫶 vestibulum odio. Sed a luctus mi. In nec 烒 cursus justo. Nunc lacinia 烢 massa a eros semper scelerisque. Fusce dictum lacus 珛 nec ipsum 駷pellentesque, id finibus sapien lacinia.</p>
그러나 가장 좋은 해결책은 HTML / 사용자 입력을 regex로 한 번 전처리하는 것입니다. 이렇게하면 위와 동일하게 수행되어 한자 런타임 정규식 래핑을 피할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다