ด้วยสํานึกในพระมหากรุณาธิคุณสมเด็จพระนางเจ้าสิริกิติ์เป็นล้นพ้นอันหาที่สุดมิได้
ด้วยสํานึกในพระมหากรุณาธิคุณสมเด็จพระนางเจ้าสิริกิติ์เป็นล้นพ้นอันหาที่สุดมิได้


ตัวอย่าง การตรวจสอบนับจำนวนข้อความ SMS ด้วย javascript

เขียนเมื่อ 2 ปีก่อน โดย Ninenik Narkdee
sms นับข้อความ นับsms

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ sms นับข้อความ นับsms

ปัจจุบัน นักพัฒนาสามารถ ใช้ ChatGPT | Gemini | Claude | Perplexity | Deepseek ช่วยในการแก้ไขปัญหาต่างๆ ในการเขียนโปรแกรม หรือหาข้อมูลเพิ่มเติมได้ง่ายและสะดวก แนะนำให้ทุกคนใช้งานเพื่อพัฒนาศักยภาพของตัวเอง

ดูแล้ว 2,295 ครั้ง


ตัวอย่างโค้ดต่อไปนี้ เป็นแนวทางการใช้งาน javascript สำหรับ
ตรวจสอบนับจำนวนข้อความที่ต้องการ สำหรับจัดส่ง SMS โดยสามารถนำ
ไปประยุกต์เพิ่มเติมตามต้องการ 
 
การคำนวณจำนวนตัวอักษรในข้อความ SMS ในภาษาไทยและภาษาอังกฤษ
จะแตกต่างกันตามกฎเฉพาะของแต่ละภาษา ดังนี้:
 

1. ภาษาอังกฤษ (English):

  • ใน SMS ส่วนมาก, 1 ข้อความ SMS มีขนาดไม่เกิน 160 ตัวอักษร (รวมเว้นวรรค)
  • หากข้อความยาวเกิน 160 ตัวอักษร, จะถือเป็น 2 ข้อความหรือมากกว่า ตามจำนวนตัวอักษรที่มี

2. ภาษาไทย (Thai):

  • เนื่องจากภาษาไทยมีอักขระจำนวนมากกว่าภาษาอังกฤษ, ดังนั้น การคำนวณ SMS ในภาษาไทยจะแตกต่าง
  • สำหรับภาษาไทย, 1 ข้อความ SMS จะมีขนาดไม่เกิน 70 ตัวอักษร (รวมเว้นวรรค)
  • หากข้อความยาวเกิน 70 ตัวอักษร, จะถือเป็น 2 ข้อความหรือมากกว่า ตามจำนวนตัวอักษรที่มี
 
ดังนั้น, การคำนวณจำนวนข้อความ SMS สำหรับข้อความที่รวมทั้งภาษาอังกฤษและภาษาไทย
จะต้องพิจารณาตามกฎดังกล่าวเพื่อคำนวณได้อย่างถูกต้อง. แต่ละภาษามีการคำนวณต่างกัน
ดังที่กล่าวไว้ข้างต้น และความยาวของข้อความอาจมีผลต่อจำนวนข้อความ SMS ที่ต้องใช้
ในการส่งข้อความนั้นๆด้วย ดังนั้น ควรระมัดระวังในการคำนวณและส่งข้อความที่มีจำนวนอักขระมากๆ
ในภาษาไทยหรือภาษาอังกฤษ.
 

ตัวอย่างโค้ด
 

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SMS Character Count</title>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
<style>
    .container {
        margin-top: 50px;
    }
</style>
</head>
<body>

<div class="container">
    <div class="row">
        <div class="col-md-6">
            <div class="form-group">
                <label for="textInput">Input Text:</label>
                <textarea class="form-control" id="textInput" rows="4" oninput="countSMS(this.value)"></textarea>
            </div>
        </div>
        <div class="col-md-6">
            <div class="form-group">
                <label for="smsCount">SMS Count:</label>
                <input type="text" class="form-control" id="smsCount" readonly>
            </div>
            <div class="form-group">
                <label for="charCount">Character Count (with spaces):</label>
                <input type="text" class="form-control" id="charCount" readonly>
            </div>
            <div class="form-group">
                <label for="charCountNoSpaces">Character Count (without spaces):</label>
                <input type="text" class="form-control" id="charCountNoSpaces" readonly>
            </div>
            <div class="form-group">
                <label for="spaceCount">Space Count:</label>
                <input type="text" class="form-control" id="spaceCount" readonly>
            </div>
            <div class="form-group">
                <label for="thaiCharCount">Thai Character Count:</label>
                <input type="text" class="form-control" id="thaiCharCount" readonly>
            </div>
            <div class="form-group">
                <label for="englishCharCount">English Character Count:</label>
                <input type="text" class="form-control" id="englishCharCount" readonly>
            </div>
            <div class="form-group">
                <label for="language">Language:</label>
                <input type="text" class="form-control" id="language" readonly>
            </div>
        </div>
    </div>
</div>

<script>
    function countSMS(text) {
        // ช่วงของรหัส Unicode ที่ใช้แทนตัวอักษรภาษาไทย: 0x0E00 - 0x0E7F
        const thaiRegex = new RegExp("[\u0E00-\u0E7F]", "g");
	//  นับเฉพาะจำนวนตัวอักษรภาษาไทย รวมช่องว่างด้วย
        const thaiCharCount = (text.match(thaiRegex) || []).length;

        // ช่วงของรหัส Unicode ที่ใช้แทนตัวอักษรภาษาอังกฤษ: 0x0020 - 0x007E
        const englishRegex = new RegExp("[\u0020-\u007E]", "g");
	//  นับเฉพาะจำนวนตัวอักษรภาษาอังกฤษ รวมช่องว่างด้วย
        const englishCharCount = (text.match(englishRegex) || []).length;

        // นับเฉพาะจำนวนช่องว่างในข้อความ
        const spaceCount = (text.match(/\s/g) || []).length;

        // ลบช่องว่างออกก่อนนำไปตรวจสอบว่ามีภาษาไทย หรือภาษาอังกฤษ กี่ตัวอักษร
        const textWithoutSpaces = text.replace(/\s/g, '');

        //  นับเฉพาะจำนวนตัวอักษรภาษาไทย ไม่รวมช่องว่างด้วย
        const thaiCharCountNoSpaces = (textWithoutSpaces.match(thaiRegex) || []).length;

        //  นับเฉพาะจำนวนตัวอักษรภาษาอังกฤษ ไม่รวมช่องว่างด้วย
        const englishCharCountNoSpaces = (textWithoutSpaces.match(englishRegex) || []).length;
      
        // นับจำนวนตัวอักษรทั้งหมดในข้อความ รวมช่องว่างด้วย
        const totalCharCount = thaiCharCountNoSpaces + englishCharCountNoSpaces + spaceCount;      

        // ตรวจสอบภาษา
        let language;
	// ค่าพื้นฐานการแยกจำนวน ข้อความ sms ค่าเริ่มต้นเป็น 70 รองรับแบบผสม และภาษาไทยอย่างเดียว
        let base_calculate = 70; 
        if (thaiCharCountNoSpaces === 0) { // ถ้าไม่มีภาษาไทยเลย
            language = "English"; // เป็นภาษาอังกฤษอย่างเดียว
            base_calculate = 160; 
        } else if (englishCharCountNoSpaces === 0) { // ไม่มีภาษาอังกฤษเลย
            language = "Thai"; // เป็นภาษาไทยอย่างเดียว
        } else {
            language = "Mixed"; // เป็นแบบผสมไทย อังกฤษ
        }
      
        // คำนวณจำนวน SMS
        // ถ้าภาษาไทยใช้: 70, ภาษาอังกฤษใช้: 160      
        const smsCount = Math.ceil(totalCharCount / base_calculate); 

        // นำค่าไปแสดง
        document.getElementById("smsCount").value = smsCount;
        document.getElementById("charCount").value = totalCharCount;
        document.getElementById("charCountNoSpaces").value = totalCharCount - spaceCount;
        document.getElementById("spaceCount").value = spaceCount;
        document.getElementById("thaiCharCount").value = thaiCharCountNoSpaces;
        document.getElementById("englishCharCount").value = englishCharCountNoSpaces;
        document.getElementById("language").value = language;
    }
</script>

</body>
</html>
 

ตัวอย่างข้อความสำหรับทดสอบ


Hello, how are you? // ภาษาอังกฤษอย่างเดียว
สวัสดี ยินดีที่ได้รู้จักครับ // ภาษาไทยอย่างเดียว
Hello สวัสดี  // แบบผสมไทย อังกฤษ















URL สำหรับอ้างอิง








เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ