trim() เป็น JavaScript string method มาตรฐานที่ใช้ได้ใน n8n สำหรับลบ whitespace characters ทั้งหมดออกจากต้นและท้ายข้อความ รวมถึงช่องว่างธรรมดา tab newline carriage return และ whitespace characters อื่นๆ ตามมาตรฐาน Unicode โดยช่องว่างตรงกลางข้อความจะไม่ถูกลบออก มีเฉพาะหน้าและหลังเท่านั้น
=string.trim()
=string.trim()
ลบช่องว่างหน้า-หลังที่ผู้ใช้พิมพ์ผิดในฟอร์ม input เช่น username, email, หมายเลขโทรศัพท์
ลบช่องว่างส่วนเกินจากข้อมูลที่ import จาก CSV หรือ Excel ก่อนนำไปใช้
ป้องกันปัญหาจากช่องว่างหน้า-หลังในอีเมล, username, หรือ API keys ก่อน authentication
ทำความสะอาดข้อมูลจาก external APIs ที่อาจส่งมาพร้อม whitespace ที่ไม่ต้องการ
{{ ' Hello World '.trim() }}={{ ' Hello World '.trim() }}
Hello World
{{ $json.username.trim() }}={{ $json.username.trim() }}
john_doe
{{ $json.description.trim() }}'
.
**ข้อมูลต้นฉบับ:** '
\tProduct description
'
–
หมายถึง newline (ขึ้นบรรทัดใหม่)
– \t หมายถึง tab (เว้นวรรค)
.
**ผลลัพธ์หลัง trim():** 'Product description'
.
**ประเภท whitespace ที่ trim() ลบได้:**
✅ ช่องว่างธรรมดา (Space)
✅ การเว้นวรรค (Tab)
✅ ขึ้นบรรทัดใหม่ (Newline)
✅ กลับหัวบรรทัด (Carriage return)
✅ ตัวอักษรช่องว่าง Unicode อื่นๆ
.
**เจอบ่อยกับข้อมูลจาก:**
– ฟอร์ม Textarea ที่มีการขึ้นบรรทัด
– ไฟล์ CSV ที่มี tabs คั่นข้อมูล
– Copy-paste ข้อความจากเอกสาร
={{ $json.description.trim() }}
Product description
{{ $json.tags.map(tag => tag.trim()) }}={{ $json.tags.map(tag => tag.trim()) }}
["javascript", "nodejs", "n8n"]
{{ $json.email.trim().toLowerCase() }}={{ $json.email.trim().toLowerCase() }}
user@example.com
{{ $json.name.trim() === '' ? 'Name is required' : $json.name.trim() }}– Input: ' John Smith '
→ หลัง trim() ได้ 'John Smith' → ผลลัพธ์: 'John Smith'
– Input: '' (string ว่าง)
→ หลัง trim() ได้ '' → ผลลัพธ์: 'Name is required'
.
**ใช้ใน IF Node:**
“`
{{ $json.name.trim().length > 0 }}
“`
– true → มีข้อมูล → Success path
– false → ว่างเปล่า → Error path
.
**ช่วยป้องกันปัญหา:**
❌ User ส่งเฉพาะช่องว่างมาโดยไม่มีข้อมูลจริง
❌ Empty form submissions
❌ Invalid form data
.
เคยเจอมั้ยครับว่า user กด space bar แล้วกด submit… แล้ว form ก็ผ่าน validation ไปเฉยๆ 😅
={{ $json.name.trim() === '' ? 'Name is required' : $json.name.trim() }}
John Smith หรือ 'Name is required'
trim() ลบ whitespace ได้ทุกประเภทออกจากหน้าและท้ายข้อความครับ:
.
✅ **ที่ลบได้:**
– ช่องว่างธรรมดา (Space)
– การเว้นวรรค (Tab)
– ขึ้นบรรทัดใหม่ (Newline)
– กลับหัวบรรทัด (Carriage return)
– เลื่อนหน้ากระดาษ (Form feed)
– เว้นวรรคแนวตั้ง (Vertical tab)
– ตัวอักษรช่องว่าง Unicode ทั้งหมด
.
❌ **ที่ไม่ลบ:** ช่องว่างตรงกลางข้อความ
.
**ตัวอย่าง:**
“`
‘ Hello World ‘.trim()
→ ‘Hello World’ (ช่องว่าง 2 ตัวตรงกลางยังอยู่)
‘
\tText\r
‘.trim()
→ ‘Text’ (tab, newline, carriage return หายหมด)
“`
แต่ละ method ลบ whitespace คนละตำแหน่งกันครับ:
.
**trim()** – ลบทั้งหน้าและหลัง
“`
‘ text ‘.trim() → ‘text’
“`
.
**trimStart()** (alias: trimLeft()) – ลบเฉพาะหน้า
“`
‘ text ‘.trimStart() → ‘text ‘
“`
.
**trimEnd()** (alias: trimRight()) – ลบเฉพาะหลัง
“`
‘ text ‘.trimEnd() → ‘ text’
“`
.
**เลือกใช้ตามกรณี:**
– Form input → ใช้ trim() (ลบทั้งสองด้าน)
– Text formatting → ใช้ trimStart()/trimEnd()
– CSV parsing → ใช้ trim() (ป้องกันช่องว่างจากทั้งสองด้าน)
.
ส่วนใหญ่ผมจะใช้ trim() ธรรมดาเลยครับ เพราะปลอดภัยที่สุด 😎
trim() จะไม่ลบช่องว่างตรงกลางข้อความครับ ลบแค่หน้าและหลังเท่านั้น
.
**ตัวอย่าง:**
“`
‘Hello World’.trim() → ‘Hello World’ (ช่องว่าง 2 ตัวตรงกลางยังอยู่)
‘ First Last ‘.trim() → ‘First Last’ (ช่องว่างตรงกลางไม่ถูกลบ)
“`
.
**ถ้าต้องการลบช่องว่างตรงกลางด้วย:**
“`javascript
{{ $json.text.trim().replace(/\s+/g, ‘ ‘) }}
“`
.
**ขั้นตอน:**
1. trim() → ลบช่องว่างหน้าและหลัง
2. replace(/\s+/g, ‘ ‘) → แทนที่ช่องว่างหลายตัวด้วยช่องว่างเดียว
.
**ผลลัพธ์:**
“`
‘ Hello World ‘.trim().replace(/\s+/g, ‘ ‘)
→ ‘Hello World’ (เหลือช่องว่างตัวเดียว)
“`
.
เทคนิคนี้ใช้ได้ดีมากเวลาทำความสะอาดข้อมูลจาก CSV หรือ textarea ครับ 💡
trim() ใช้ใน n8n expressions ได้หลาย nodes ครับ:
.
**1. Code Node / Set node**
“`
{{ $json.username.trim() }}
{{ $json.email.trim().toLowerCase() }}
“`
.
**2. IF Node (Conditional)**
“`
{{ $json.name.trim().length > 0 }}
{{ $json.input.trim() === ‘admin’ }}
“`
.
**3. Function Node (JavaScript)**
“`javascript
const cleanedData = items.map(item => ({
…item,
name: item.json.name.trim(),
email: item.json.email.trim().toLowerCase()
}));
return cleanedData;
“`
.
**4. HTTP Request Node (Query parameters)**
“`
Query: search={{ $json.query.trim() }}
“`
.
**Common Patterns:**
– Form validation: เช็คว่า input ไม่ว่างหลัง trim
– Data cleaning: ทำความสะอาดก่อนส่ง API
– Array processing: ใช้ map() clean ทุก element
.
ส่วนตัวผมจะใส่ trim() ทุกครั้งที่รับข้อมูลจาก webhook เลยครับ ป้องกันปัญหาจากช่องว่างที่มองไม่เห็น 😎
trim() return string ใหม่เสมอครับ ไม่แก้ไข string เดิม (immutable)
.
**ตัวอย่าง JavaScript:**
“`javascript
const original = ‘ text ‘;
const cleaned = original.trim();
console.log(original); // ‘ text ‘ (ไม่เปลี่ยน)
console.log(cleaned); // ‘text’ (string ใหม่)
“`
.
**ใน n8n:**
“`
{{ $json.name.trim() }} // Return string ใหม่
{{ $json.name }} // String เดิมไม่เปลี่ยน
“`
.
**สิ่งที่ควรรู้:**
– trim() ไม่มี arguments (ไม่รับ parameters)
– Return type: string
– Return string ใหม่แม้ไม่มี whitespace ให้ trim
– Original string ไม่ถูกแก้ไข (immutable)
.
นี่คือเหตุผลว่าทำไม JavaScript ถึงปลอดภัย เพราะไม่ modify ข้อมูลต้นฉบับโดยไม่ตั้งใจ 👍
trim() เป็น JavaScript string method มาตรฐานที่ใช้ได้ใน n8n expressions สำหรับลบ whitespace characters ทั้งหมดออกจากต้นและท้ายข้อความ ไม่ว่าจะเป็นช่องว่าง tab หรือ newline
.
สิ่งที่ต้องรู้คือ trim() จะลบแค่หน้าและหลังเท่านั้นนะครับ ช่องว่างตรงกลางข้อความจะไม่ถูกลบออกไป 👌
.
method นี้จะ return string ใหม่โดยไม่แก้ไขต้นฉบับ เหมาะมากสำหรับทำความสะอาดข้อมูลจากฟอร์ม API หรือ CSV ก่อนนำไปใช้งาน
.
ส่วนตัวผมแนะนำให้ใช้ trim() ทุกครั้งที่รับข้อมูลจาก user input เลยครับ เพราะช่วยป้องกันปัญหาจากช่องว่างที่มองไม่เห็นได้เยอะ ทำให้ข้อมูลสะอาดพร้อมใช้งานในขั้นตอนถัดไป 😎