การจัดรูปแบบข้อความ
ส่วนนี้จะอธิบายเกี่ยวกับฟอร์แมตเตอร์ (Formatter) ต่างๆ สำหรับข้อมูลประเภทข้อความ โดยจะแนะนำไวยากรณ์ ตัวอย่าง และผลลัพธ์ของฟอร์แมตเตอร์แต่ละตัวตามลำดับครับ/ค่ะ
1. :lowerCase
คำอธิบายไวยากรณ์
แปลงตัวอักษรทั้งหมดให้เป็นตัวพิมพ์เล็กครับ/ค่ะ
ตัวอย่าง
'My Car':lowerCase() // ผลลัพธ์คือ "my car"
'my car':lowerCase() // ผลลัพธ์คือ "my car"
null:lowerCase() // ผลลัพธ์คือ null
1203:lowerCase() // ผลลัพธ์คือ 1203
ผลลัพธ์
ผลลัพธ์ของแต่ละตัวอย่างจะแสดงอยู่ในส่วนคอมเมนต์ครับ/ค่ะ
2. :upperCase
คำอธิบายไวยากรณ์
แปลงตัวอักษรทั้งหมดให้เป็นตัวพิมพ์ใหญ่ครับ/ค่ะ
ตัวอย่าง
'My Car':upperCase() // ผลลัพธ์คือ "MY CAR"
'my car':upperCase() // ผลลัพธ์คือ "MY CAR"
null:upperCase() // ผลลัพธ์คือ null
1203:upperCase() // ผลลัพธ์คือ 1203
ผลลัพธ์
ผลลัพธ์ของแต่ละตัวอย่างจะแสดงอยู่ในส่วนคอมเมนต์ครับ/ค่ะ
3. :ucFirst
คำอธิบายไวยากรณ์
แปลงเฉพาะตัวอักษรแรกของสตริงให้เป็นตัวพิมพ์ใหญ่ ส่วนที่เหลือจะคงเดิมครับ/ค่ะ
ตัวอย่าง
'My Car':ucFirst() // ผลลัพธ์คือ "My Car"
'my car':ucFirst() // ผลลัพธ์คือ "My car"
null:ucFirst() // ผลลัพธ์คือ null
undefined:ucFirst() // ผลลัพธ์คือ undefined
1203:ucFirst() // ผลลัพธ์คือ 1203
ผลลัพธ์
ผลลัพธ์จะแสดงอยู่ในส่วนคอมเมนต์ครับ/ค่ะ
4. :ucWords
คำอธิบายไวยากรณ์
แปลงตัวอักษรแรกของแต่ละคำในสตริงให้เป็นตัวพิมพ์ใหญ่ครับ/ค่ะ
ตัวอย่าง
'my car':ucWords() // ผลลัพธ์คือ "My Car"
'My cAR':ucWords() // ผลลัพธ์คือ "My CAR"
null:ucWords() // ผลลัพธ์คือ null
undefined:ucWords() // ผลลัพธ์คือ undefined
1203:ucWords() // ผลลัพธ์คือ 1203
ผลลัพธ์
ผลลัพธ์จะแสดงตามตัวอย่างที่ให้ไว้ครับ/ค่ะ
5. :print(message)
คำอธิบายไวยากรณ์
จะคืนค่าข้อความที่ระบุเสมอ ไม่ว่าข้อมูลต้นฉบับจะเป็นอะไรก็ตาม ฟอร์แมตเตอร์นี้มีประโยชน์สำหรับใช้เป็นค่าเริ่มต้น (fallback) ครับ/ค่ะ
พารามิเตอร์:
message: ข้อความที่ต้องการให้แสดง
ตัวอย่าง
'My Car':print('hello!') // ผลลัพธ์คือ "hello!"
'my car':print('hello!') // ผลลัพธ์คือ "hello!"
null:print('hello!') // ผลลัพธ์คือ "hello!"
1203:print('hello!') // ผลลัพธ์คือ "hello!"
ผลลัพธ์
จะคืนค่าสตริง "hello!" ที่ระบุไว้ในทุกกรณีครับ/ค่ะ
6. :printJSON
คำอธิบายไวยากรณ์
แปลงออบเจกต์ (Object) หรืออาร์เรย์ (Array) ให้เป็นสตริงในรูปแบบ JSON ครับ/ค่ะ
ตัวอย่าง
[{'id':2,'name':'homer'},{'id':3,'name':'bart'}]:printJSON()
// ผลลัพธ์คือ "[
{"id": 2, "name": "homer"},
{"id": 3, "name": "bart"}
]"
'my car':printJSON() // ผลลัพธ์คือ ""my car""
ผลลัพธ์
ผลลัพธ์ที่ได้คือสตริงในรูปแบบ JSON ที่ถูกแปลงจากข้อมูลที่ให้ไว้ครับ/ค่ะ
7. :unaccent
คำอธิบายไวยากรณ์
ลบเครื่องหมายเน้นเสียง (diacritical marks) ออกจากข้อความ เพื่อให้ข้อความอยู่ในรูปแบบที่ไม่มีเครื่องหมายเน้นเสียงครับ/ค่ะ
ตัวอย่าง
'crème brulée':unaccent() // ผลลัพธ์คือ "creme brulee"
'CRÈME BRULÉE':unaccent() // ผลลัพธ์คือ "CREME BRULEE"
'être':unaccent() // ผลลัพธ์คือ "etre"
'éùïêèà ':unaccent() // ผลลัพธ์คือ "euieea"
ผลลัพธ์
ผลลัพธ์ของทุกตัวอย่างจะแสดงข้อความที่ถูกลบเครื่องหมายเน้นเสียงออกไปแล้วครับ/ค่ะ
8. :convCRLF
คำอธิบายไวยากรณ์
แปลงอักขระขึ้นบรรทัดใหม่ (carriage return และ newline) (\r\n หรือ \n) ให้เป็นแท็กการขึ้นบรรทัดใหม่เฉพาะสำหรับเอกสารนั้นๆ ซึ่งมีประโยชน์สำหรับไฟล์รูปแบบต่างๆ เช่น DOCX, PPTX, ODT, ODP และ ODS ครับ/ค่ะ
ข้อควรทราบ: เมื่อใช้ :html ก่อน :convCRLF อักขระ \r\n จะถูกแปลงเป็นแท็ก <br> ครับ/ค่ะ
ตัวอย่าง
// สำหรับรูปแบบ ODT:
'my blue
car':convCRLF() // ผลลัพธ์คือ "my blue <text:line-break/> car"
'my blue
car':convCRLF() // ผลลัพธ์คือ "my blue <text:line-break/> car"
// สำหรับรูปแบบ DOCX:
'my blue
car':convCRLF() // ผลลัพธ์คือ "my blue </w:t><w:br/><w:t> car"
'my blue
car':convCRLF() // ผลลัพธ์คือ "my blue </w:t><w:br/><w:t> car"
ผลลัพธ์
ผลลัพธ์จะแสดงแท็กการขึ้นบรรทัดใหม่ที่เหมาะสมกับรูปแบบเอกสารเป้าหมายครับ/ค่ะ
9. :substr(begin, end, wordMode)
คำอธิบายไวยากรณ์
ดำเนินการตัดสตริง โดยเริ่มจากดัชนี begin (นับจาก 0) และสิ้นสุดก่อนดัชนี end ครับ/ค่ะ
พารามิเตอร์เสริม wordMode (ค่าบูลีน หรือ last) ใช้เพื่อควบคุมว่าจะรักษารูปแบบคำให้สมบูรณ์หรือไม่ โดยไม่ตัดคำกลางคันครับ/ค่ะ
ตัวอย่าง
'foobar':substr(0, 3) // ผลลัพธ์คือ "foo"
'foobar':substr(1) // ผลลัพธ์คือ "oobar"
'foobar':substr(-2) // ผลลัพธ์คือ "ar"
'foobar':substr(2, -1) // ผลลัพธ์คือ "oba"
'abcd efg hijklm':substr(0, 11, true) // ผลลัพธ์คือ "abcd efg "
'abcd efg hijklm':substr(1, 11, true) // ผลลัพธ์คือ "abcd efg "
ผลลัพธ์
ผลลัพธ์ที่ได้คือสตริงย่อยที่ถูกแยกออกมาตามพารามิเตอร์ที่กำหนดครับ/ค่ะ
10. :split(delimiter)
คำอธิบายไวยากรณ์
แยกสตริงออกเป็นอาร์เรย์โดยใช้ตัวคั่น (delimiter) ที่ระบุครับ/ค่ะ
พารามิเตอร์:
ตัวอย่าง
'abcdefc12':split('c') // ผลลัพธ์คือ ["ab", "def", "12"]
1222.1:split('.') // ผลลัพธ์คือ ["1222", "1"]
'ab/cd/ef':split('/') // ผลลัพธ์คือ ["ab", "cd", "ef"]
ผลลัพธ์
ผลลัพธ์ที่ได้คืออาร์เรย์ที่ถูกแยกด้วยตัวคั่นที่กำหนดครับ/ค่ะ
11. :padl(targetLength, padString)
คำอธิบายไวยากรณ์
เติมอักขระที่ระบุทางด้านซ้ายของสตริง จนกว่าสตริงสุดท้ายจะมี targetLength ตามที่กำหนดครับ/ค่ะ
หากความยาวเป้าหมายน้อยกว่าความยาวของสตริงต้นฉบับ จะคืนค่าสตริงต้นฉบับครับ/ค่ะ
พารามิเตอร์:
targetLength: ความยาวรวมที่ต้องการ
padString: สตริงที่ใช้สำหรับเติม (ค่าเริ่มต้นคือช่องว่าง)
ตัวอย่าง
'abc':padl(10) // ผลลัพธ์คือ " abc"
'abc':padl(10, 'foo') // ผลลัพธ์คือ "foofoofabc"
'abc':padl(6, '123465') // ผลลัพธ์คือ "123abc"
'abc':padl(8, '0') // ผลลัพธ์คือ "00000abc"
'abc':padl(1) // ผลลัพธ์คือ "abc"
ผลลัพธ์
ผลลัพธ์ของแต่ละตัวอย่างคือสตริงที่ถูกเติมทางด้านซ้ายตามที่กำหนดครับ/ค่ะ
12. :padr(targetLength, padString)
คำอธิบายไวยากรณ์
เติมอักขระที่ระบุทางด้านขวาของสตริง จนกว่าสตริงสุดท้ายจะมี targetLength ตามที่กำหนดครับ/ค่ะ
พารามิเตอร์เหมือนกับ :padl ครับ/ค่ะ
ตัวอย่าง
'abc':padr(10) // ผลลัพธ์คือ "abc "
'abc':padr(10, 'foo') // ผลลัพธ์คือ "abcfoofoof"
'abc':padr(6, '123465') // ผลลัพธ์คือ "abc123"
'abc':padr(8, '0') // ผลลัพธ์คือ "abc00000"
'abc':padr(1) // ผลลัพธ์คือ "abc"
ผลลัพธ์
ผลลัพธ์ที่ได้คือสตริงที่ถูกเติมทางด้านขวาครับ/ค่ะ
13. :ellipsis(maximum)
คำอธิบายไวยากรณ์
หากข้อความมีความยาวเกินจำนวนอักขระที่ระบุ จะเพิ่มเครื่องหมายจุดไข่ปลา ("...") ไว้ที่ท้ายข้อความครับ/ค่ะ
พารามิเตอร์:
maximum: จำนวนอักขระสูงสุดที่อนุญาต
ตัวอย่าง
'abcdef':ellipsis(3) // ผลลัพธ์คือ "abc..."
'abcdef':ellipsis(6) // ผลลัพธ์คือ "abcdef"
'abcdef':ellipsis(10) // ผลลัพธ์คือ "abcdef"
ผลลัพธ์
ตัวอย่างจะแสดงข้อความที่ถูกตัดและเพิ่มเครื่องหมายจุดไข่ปลา หากจำเป็นครับ/ค่ะ
14. :prepend(textToPrepend)
คำอธิบายไวยากรณ์
เพิ่มข้อความที่ระบุไว้ที่ด้านหน้าของสตริงครับ/ค่ะ
พารามิเตอร์:
textToPrepend: ข้อความนำหน้า
ตัวอย่าง
'abcdef':prepend('123') // ผลลัพธ์คือ "123abcdef"
ผลลัพธ์
ผลลัพธ์ที่ได้คือสตริงที่มีข้อความนำหน้าตามที่ระบุครับ/ค่ะ
15. :append(textToAppend)
คำอธิบายไวยากรณ์
เพิ่มข้อความที่ระบุไว้ที่ด้านท้ายของสตริงครับ/ค่ะ
พารามิเตอร์:
textToAppend: ข้อความต่อท้าย
ตัวอย่าง
'abcdef':append('123') // ผลลัพธ์คือ "abcdef123"
ผลลัพธ์
ผลลัพธ์ที่ได้คือสตริงที่มีข้อความต่อท้ายตามที่ระบุครับ/ค่ะ
16. :replace(oldText, newText)
คำอธิบายไวยากรณ์
แทนที่ oldText ทั้งหมดที่พบในข้อความด้วย newText ครับ/ค่ะ
พารามิเตอร์:
oldText: ข้อความเก่าที่ต้องการแทนที่
newText: ข้อความใหม่ที่จะใช้แทนที่
ข้อควรทราบ: หาก newText เป็น null หมายความว่าจะลบข้อความที่ตรงกันออกไปครับ/ค่ะ
ตัวอย่าง
'abcdef abcde':replace('cd', 'OK') // ผลลัพธ์คือ "abOKef abOKe"
'abcdef abcde':replace('cd') // ผลลัพธ์คือ "abef abe"
'abcdef abcde':replace('cd', null) // ผลลัพธ์คือ "abef abe"
'abcdef abcde':replace('cd', 1000) // ผลลัพธ์คือ "ab1000ef ab1000e"
ผลลัพธ์
ผลลัพธ์ที่ได้คือสตริงหลังจากที่ได้ทำการแทนที่ส่วนที่ระบุแล้วครับ/ค่ะ
17. :len
คำอธิบายไวยากรณ์
คืนค่าความยาวของสตริงหรืออาร์เรย์ครับ/ค่ะ
ตัวอย่าง
'Hello World':len() // ผลลัพธ์คือ 11
'':len() // ผลลัพธ์คือ 0
[1,2,3,4,5]:len() // ผลลัพธ์คือ 5
[1,'Hello']:len() // ผลลัพธ์คือ 2
ผลลัพธ์
ผลลัพธ์ที่ได้คือค่าความยาวที่สอดคล้องกันครับ/ค่ะ
18. :t
คำอธิบายไวยากรณ์
แปลข้อความโดยใช้พจนานุกรมการแปลครับ/ค่ะ
ตัวอย่างและผลลัพธ์จะขึ้นอยู่กับการตั้งค่าพจนานุกรมการแปลจริงครับ/ค่ะ
19. :preserveCharRef
คำอธิบายไวยากรณ์
โดยปกติแล้ว อักขระที่ไม่ถูกต้องบางตัวใน XML (เช่น &, >, <, เป็นต้น) จะถูกลบออกไป แต่ฟอร์แมตเตอร์นี้จะคงการอ้างอิงอักขระ (character references) ไว้ (เช่น § จะยังคงเดิม) ซึ่งเหมาะสำหรับสถานการณ์การสร้าง XML โดยเฉพาะครับ/ค่ะ
ตัวอย่างและผลลัพธ์จะขึ้นอยู่กับกรณีการใช้งานเฉพาะครับ/ค่ะ