자바스크립트는 유니코드로 인코딩되므로 모든 문자는 하나이지만 백그라운드 프로그램에서는 일반적으로 한자가 2바이트를 차지하므로 프런트엔드와 백엔드 검증 길이가 길어집니다. 불일치, 이 문제는 정규화를 통해 해결될 수 있습니다.
function getRealLen( str ) {
return str.replace(/[^x00-xff]/g, '__').length; //모든 더블바이트 문자와 일치합니다
}
또 다른 팁이 포함되어 있습니다.
때때로 레이아웃과 인터페이스에 영향을 주지 않고 아름다움을 위해 일부 카피라이팅이 잘릴 수 있습니다. 단, 중국어와 영어의 너비가 다르거나, 영어 표준에 따라 중국어가 잘리는 경우가 있습니다. 중국어 기준으로 보면 당연히 길고 짧을텐데, 특히 중국어와 영어 둘 다 사용하기 쉬운 별명같은 것들은 위의 아이디어를 활용해도 됩니다
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 및 일부 대문자는 중국어와 일치하며 이 기능의 규칙성은 상당한 개선의 여지가 있으며 잘림의 시작 위치도 지정할 수 있습니다.