ใช้ Regular Expressions นับจำนวนคำในสตริงได้ง่าย มีขั้นตอนดังนี้
ขั้นตอน
ประโยคประกอบด้วยคำคั่นด้วยช่องว่าง บางครั้งมีหลายช่องว่าง ต้องคำนึงถึงทั้งหมด
ขั้นตอนที่ 1 - ลบช่องว่างหน้า/หลัง
str.replace(/(^\s*)|(\s*$)/gi, "");
ขั้นตอนที่ 2 - ลดช่องว่างหลายช่องเป็นช่องเดียว
str.replace(/[ ]{2,}/gi, " ");
ขั้นตอนที่ 3 - ลบบรรทัดใหม่ที่มีช่องว่างนำหน้า
str.replace(/\n /, "\n");
หลังทำขั้นตอนทั้งหมด จะได้สตริงคั่นคำด้วยช่องว่างเดียว ใช้ split() แยกคำ แล้ว length นับจำนวน
ตัวอย่าง
<html> <body>
<script>
function countWords(str) {
str = str.replace(/(^\s*)|(\s*$)/gi, "");
str = str.replace(/[ ]{2,}/gi, " ");
str = str.replace(/\n /, "\n");
return str.split(' ').length;
}
document.write(countWords(" Tutorix is one of the best E-learning platforms"));
</script>
</body> </html>
ผลลัพธ์
8