일부 동료들은 회사의 OA에 게시물을 게시하여 JavaScript에서 중국어 -영어 혼합 문자열의 길이를 얻는 방법을 소개했습니다.
정규 표현이 사용됩니다.
다음과 같이 코드 코드를 복사하십시오.
var str = "탱크는 탱크의 음역입니다";
var len = str.match (/[^ -]/g) == null?
나는 책을 확인하고 조금 이해했다.
서양 텍스트에서 일반적으로 사용되는 문자는 공간으로 구성됩니다 "(0x20) to"~ "(0x7e). Essence
다음과 같이 코드 코드를 복사하십시오.
string.match (regex)는 배열 형태의 문자열 형태로 정규식 regex 문자열을 반환합니다.
str.match (/[^ -~]/g)는 배열 형태로 한자를 반환합니다. 예를 들어
var str = "dd brother";
// "big, brother"를 표시하고, 배열에서 중국어 2 개를 반환하면 배열 길이는 2입니다.
알림 (str.match (/[^ -]/g);
이러한 방식으로 var len = str.match (/[^ -]/g) = str.length : str.match (/[^ -]/g) .
JavaScript에서는 한자의 길이가 1으로 계산됩니다. 데이터베이스에서 과도한 길이를 유발하는 오류입니다.
참고 : 위의 코드에는 수정 후 다음 기능으로 변경됩니다.
다음과 같이 코드 코드를 복사하십시오.
함수 get_strlenth (str)
{{
var len = 0;
if (str.match (/[^ -]/g) == null)
{{
len = str.length;
}
또 다른
{{
len = str.length + str.match (/[^ -]/g) .length;
}
반환 렌;
}