>  기사  >  웹 프론트엔드  >  javascript_javascript 스킬에서 정규식을 사용하여 한자의 길이를 계산하는 예

javascript_javascript 스킬에서 정규식을 사용하여 한자의 길이를 계산하는 예

WBOY
WBOY원래의
2016-05-16 16:50:45987검색

자바스크립트는 유니코드로 인코딩되므로 모든 문자는 하나이지만 백그라운드 프로그램에서는 일반적으로 한자가 2바이트를 차지하므로 프런트엔드와 백엔드 검증 길이가 길어집니다. 불일치, 이 문제는 정규화를 통해 해결될 수 있습니다.

코드 복사 코드는 다음과 같습니다.

function getRealLen( str ) {
return str.replace(/[^x00-xff]/g, '__').length; //모든 더블바이트 문자와 일치합니다
}

또 다른 팁이 포함되어 있습니다.

때때로 레이아웃과 인터페이스에 영향을 주지 않고 아름다움을 위해 일부 카피라이팅이 잘릴 수 있습니다. 단, 중국어와 영어의 너비가 다르거나, 영어 표준에 따라 중국어가 잘리는 경우가 있습니다. 중국어 기준으로 보면 당연히 길고 짧을텐데, 특히 중국어와 영어 둘 다 사용하기 쉬운 별명같은 것들은 위의 아이디어를 활용해도 됩니다

복사 code 코드는 다음과 같습니다.

function beautySub( str, len) {
var reg = /[u4e00-u9fa5]/g, // 전문 매칭 중국어
Slice = str.substring(0,len),
              realen = len - ( ~~( Slice.match(reg) && Slice.match(reg).length) ); ;
}
여기서는 한자의 너비가 영어 두 글자의 너비라고 생각합니다. 완벽주의자라면 j, w, m의 너비가 다르다고 생각해야 합니다. w, m 및 일부 대문자는 중국어와 일치하며 이 기능의 규칙성은 상당한 개선의 여지가 있으며 잘림의 시작 위치도 지정할 수 있습니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.