เพื่อนร่วมงานบางคนโพสต์โพสต์ใน OA ของ บริษัท เพื่อแนะนำวิธีการได้รับความยาวของสตริงผสมภาษาจีนภาษาจีนใน JavaScript
ใช้การแสดงออกปกติ
คัดลอกรหัสรหัสดังนี้:
var str = "ถังคือการแปลของถัง";
var len = str.match (/[^ -]/g) == null?
ฉันตรวจสอบหนังสือและเข้าใจเล็กน้อย:
อักขระที่ใช้กันทั่วไปในข้อความตะวันตกประกอบด้วยพื้นที่ "(0x20) ถึง" ~ "(0x7e) Essence
คัดลอกรหัสรหัสดังนี้:
string.match (regex) จะส่งคืนสตริงของนิพจน์ปกติ regex ในรูปแบบของสตริงในรูปแบบของอาร์เรย์ดังนั้น
str.match (/[^ -~]/g) จะส่งคืนอักขระจีนในรูปแบบของอาร์เรย์ ตัวอย่างเช่น
var str = "dd brother";
// แสดง "บิ๊กบราเดอร์" คืนตัวละครจีนสองตัวในอาร์เรย์และความยาวอาร์เรย์คือ 2
การแจ้งเตือน (str.match (/[^ -]/g);
ด้วยวิธีนี้ var len = str.match (/[^ -]/g) == null? .
ใน JavaScript ความยาวของอักขระจีนจะถูกคำนวณเป็น 1 มันมักจะเป็นข้อผิดพลาดที่ทำให้เกิดความยาวมากเกินไปในฐานข้อมูล
หมายเหตุ: มีปัญหาบางอย่างเกี่ยวกับรหัสข้างต้น
คัดลอกรหัสรหัสดังนี้:
ฟังก์ชั่น get_strlenth (str)
-
var len = 0;
if (str.match (/[^ -]/g) == null)
-
len = str.length;
-
อื่น
-
len = str.length + str.match (/[^ -]/g) .length;
-
กลับเลน;
-