เครื่องมือทดสอบ Regex
还没有匹配结果
输入正则与文本后,这里会展示每个匹配、捕获组和命名分组。
统计
命名分组汇总
当前没有命名分组。
เครื่องมือทดสอบ Regular Expression (Regex Tester) ออนไลน์ฟรี รองรับการทดสอบจับคู่เรียลไทม์ JS ดูกลุ่มจับ/กลุ่มที่ตั้งชื่อ ดูตัวอย่างการแทนที่ คำอธิบายไวยากรณ์ regex มีการป้องกัน timeout ป้องกัน ReDoS ด้วย Web Worker มาพร้อมไลบรารีแม่แบบ regex ที่ใช้บ่อย เหมาะสำหรับนักพัฒนาในการดีบั๊กและตรวจสอบ regex อย่างรวดเร็ว
คำแนะนำที่เกี่ยวข้อง
Regular Expression (Regex/RegExp) คืออะไร?
Regular Expression (ย่อ Regex/RegExp) เป็นภาษารูปแบบข้อความที่อธิบายและจับคู่กับชุดของสตริงที่สอดคล้องกับกฎไวยากรณ์บางอย่างด้วยสตริงเดียว ประวัติสามารถย้อนไปถึงแบบจำลองทางคณิตศาสตร์ของเซลล์ประสาทที่เสนอโดยนักประสาทวิทยา Warren McCulloch และนักคณิตศาสตร์ Walter Pitts ในทศวรรษ 1950 ต่อมานักคณิตศาสตร์ Stephen Kleene ในปี 1956 ได้เสนอคำอธิบายพีชคณิตของ「เซตปกติ」ตามพื้นฐานนั้น บิดาแห่ง Unix Ken Thompson ในปลายทศวรรษ 1960 ได้นำ Regular Expression ไปใช้งานครั้งแรกในเอดิเตอร์ QED ตั้งแต่นั้นมา Regular Expression กลายเป็นฟังก์ชันหลักของเครื่องมือชุด Unix (grep, sed, awk, vi)
ในภาษาโปรแกรมสมัยใหม่ Regular Expression เกือบจะเป็นความสามารถมาตรฐาน — RegExp ของ JavaScript, โมดูล re ของ Python, java.util.regex ของ Java, คลาส Regex ของ .NET, แพ็กเกจ regexp ของ Go ล้วนให้การสนับสนุน regex Regular Expression ถูกใช้อย่างแพร่หลายในสถานการณ์ต่างๆ เช่น การตรวจสอบฟอร์ม (อีเมล/เบอร์มือถือ/บัตรประชาชน) การค้นหาและแทนที่ข้อความ (ค้นหาและแทนที่ในตัวแก้ไข) การวิเคราะห์ล็อก (แยกล็อก ERROR) โปรแกรมรวบรวมข้อมูลเว็บ (แยกเนื้อหา HTML) การทำความสะอาดข้อมูล (ETL) การจับคู่เส้นทาง การกรองข้อมูลนำเข้าและการป้องกันความปลอดภัย (กฎ WAF) ฯลฯ
แนวคิดหลักของ Regular Expression ได้แก่: คลาสอักขระ (\d ตัวเลข, \w อักขระคำ, \s ช่องว่าง) ควอนติไฟเออร์ (* ศูนย์หรือมากกว่า, + หนึ่งหรือมากกว่า, ? ศูนย์หรือหนึ่ง, {n,m} จำนวนที่ระบุ) จุดยึด (^ จุดเริ่มต้น, $ จุดสิ้นสุด, \b ขอบเขตคำ) กลุ่ม ((...) กลุ่มจับ, (?:...) กลุ่มไม่จับ, (?<name>...) กลุ่มที่ตั้งชื่อ) การแตกแขนง (|) เซตอักขระ ([a-z]) การมองรอบ ((?=...) การมองข้างหน้าเชิงบวก, (?!) การมองข้างหน้าเชิงลบ) ฯลฯ การเชี่ยวชาญ regex สามารถเพิ่มประสิทธิภาพการประมวลผลข้อความได้อย่างมาก แต่ก็ต้องระมัดระวังในการป้องกันกับดักประสิทธิภาพเช่น ReDoS
กรณีการใช้งาน
- ทดสอบออนไลน์ว่า regex อีเมล เบอร์มือถือ เลขบัตรประชาชน URL ถูกต้องหรือไม่เมื่อพัฒนากฎการตรวจสอบฟอร์ม
- ใช้ regex แยกเวลา stamp ข้อความผิดพลาด ที่อยู่ IP ในบันทึกระดับ ERROR/INFO เมื่อวิเคราะห์ล็อก
- ดูตัวอย่างผลการแทนที่ regex เมื่อทำความสะอาดข้อมูล/ETL เช่น การแปลงรูปแบบวันที่ การปกปิดข้อมูลที่ละเอียดอ่อน (ใส่ดอกจันตรงกลางเบอร์มือถือ)
- ตรวจสอบว่า regex แยกเนื้อหาจับคู่กับส่วน HTML หรือฟิลด์ JSON เป้าหมายอย่างถูกต้องหรือไม่เมื่อเขียนโปรแกรมรวบรวมข้อมูลเว็บ
- ทำความเข้าใจความหมายของอักขระเมตาและควอนติไฟเออร์แต่ละตัวผ่านแผง「คำอธิบาย」เมื่อเรียนรู้ Regular Expression ร่วมกับแม่แบบจะเชี่ยวชาญได้อย่างรวดเร็ว
- ส่ง regex ที่น่าสงสัยให้เพื่อนร่วมงานผ่านลิงก์แชร์เมื่อ Code Review ร่วมกันดีบั๊กและปรับปรุง
วิธีการใช้งาน
- ป้อน Regular Expression ในช่องป้อนระหว่าง / / ด้านบน (ไม่ต้องใส่เครื่องหมายทับเอง) ป้อนแฟล็กทางด้านขวา (เช่น g、gi、gim) หรือคลิกปุ่มด้านล่างเพื่อสลับ
- วางหรือป้อนเนื้อหาข้อความที่ต้องการจับคู่ในพื้นที่「ข้อความทดสอบ」 ผลการจับคู่จะถูกเน้นสีแบบเรียลไทม์
- คลิกแผง「รายละเอียดการจับคู่」ทางด้านขวาเพื่อดูตำแหน่ง เนื้อหา กลุ่มจับและกลุ่มที่ตั้งชื่อของแต่ละผลการจับคู่
- สลับไปที่แท็บ「พื้นที่แทนที่」 ป้อนสตริงที่ใช้แทนที่ (รองรับการอ้างอิง $1/$&/$<name> ฯลฯ) ดูตัวอย่างผลการแทนที่แบบเรียลไทม์
- สลับไปที่แท็บ「คำอธิบายนิพจน์」 ดูคำอธิบายไวยากรณ์ regex ตามองค์ประกอบที่สร้างขึ้นโดยอัตโนมัติ
- เมื่อต้องการแม่แบบที่ใช้บ่อย คลิก「ไลบรารีแม่แบบตามหมวดหมู่」ทางด้านซ้ายเลือกแม่แบบที่ต้องการแล้วคลิกเพื่อเติม; หลังจากดีบั๊กเสร็จแล้วคลิก「แชร์」เพื่อสร้างลิงก์
คุณสมบัติ
- ทำงานใน sandbox Web Worker: Regex รันในเธรด Worker แยกจากกัน timeout 500ms หยุดอัตโนมัติ ป้องกัน ReDoS ทำให้เบราว์เซอร์ค้างได้อย่างสมบูรณ์
- จับคู่เรียลไทม์ + เน้นสี: ป้อนแล้วแสดงผลการจับคู่ทันที ผลลัพธ์ที่แตกต่างกันถูกเน้นด้วย 5 สี แยกแยะได้ชัดเจน hover เชื่อมโยงกับแผงรายละเอียด
- กลุ่มจับ + กลุ่มที่ตั้งชื่อ: แต่ละผลการจับคู่จะขยายแสดงกลุ่มจับทั้งหมด($1/$2) และกลุ่มที่ตั้งชื่อ($<name>) โดยอัตโนมัติ พร้อมสรุปสถิติ
- ดูตัวอย่างการแทนที่: ป้อนสตริงที่ใช้แทนที่เพื่อดูผลลัพธ์ล่วงหน้าแบบเรียลไทม์ รองรับปุ่มด่วนไวยากรณ์ $1/$&/$`/$'/$<name>
- คำอธิบายไวยากรณ์ regex: วิเคราะห์ Regular Expression อัตโนมัติ อธิบายความหมายไวยากรณ์ของอักขระเมตา ควอนติไฟเออร์ กลุ่ม จุดยึด ตามแต่ละองค์ประกอบ
- 12 แม่แบบที่ใช้บ่อย: มี 12 แม่แบบ regex ความถี่สูงในตัว เช่น อีเมล/URL/เบอร์มือถือ/จีน/IPv4/UUID/วันที่/ล็อก/แท็ก HTML ฯลฯ เติมได้ด้วยคลิกเดียว
- สลับ 6 แฟล็ก: ปุ่มภาพสำหรับสลับแฟล็ก g/i/m/s/u/y ไม่ต้องจำไวยากรณ์
- ลิงก์แชร์: คลิกเดียวสร้าง URL ที่มี pattern/flags/text คัดลอกให้เพื่อนร่วมงานเพื่อจำลองสถานการณ์ทดสอบโดยตรง
- สถิติการทำงาน: แสดงจำนวนการจับคู่ เวลาที่ใช้(ms) จำนวนกลุ่มจับทั้งหมด จำนวนกลุ่มที่ตั้งชื่อ แบบเรียลไทม์
- จำกัดการจับคู่ 1500 ครั้ง: ตัดอัตโนมัติเพื่อป้องกันข้อความยาวเกินไปทำให้หน้าเว็บช้า regex ผิดพลาดจะแสดงข้อความผิดพลาดไวยากรณ์ที่เป็นมิตร
ตัวอย่างโค้ด
การจับคู่และแทนที่ regex ใน JavaScript
// ตรวจสอบรูปแบบอีเมล
const emailRe = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
console.log(emailRe.test('user@example.com')); // true
// แยกกลุ่มที่ตั้งชื่อ (แยกวันที่)
const dateRe = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/g;
const text = 'เวลาประชุม:2026-03-12,กำหนดส่ง:2026-04-01';
const matches = [...text.matchAll(dateRe)];
for (const m of matches) {
console.log(m.groups.year, m.groups.month, m.groups.day);
}
// การแทนที่:แปลงรูปแบบวันที่ YYYY-MM-DD → MM/DD/YYYY
const reformatted = text.replace(dateRe, '$<month>/$<day>/$<year>');
console.log(reformatted);
// เวลาประชุม:03/12/2026,กำหนดส่ง:04/01/2026การใช้โมดูล re ใน Python
import re
# ค้นหาผลลัพธ์การจับคู่ทั้งหมด
text = 'ติดต่อ:alice@example.com,bob@test.org'
emails = re.findall(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', text)
print(emails) # ['alice@example.com', 'bob@test.org']
# แยกกลุ่มที่ตั้งชื่อ (Python ใช้ไวยากรณ์ ?P<name>)
date_pattern = r'(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})'
m = re.search(date_pattern, 'เผยแพร่เมื่อ 2026-03-12')
if m:
print(m.group('year'), m.group('month'), m.group('day'))
# การแทนที่:ปกปิด 4 หลักตรงกลางเบอร์มือถือ
phone_re = r'(1[3-9]\d)\d{4}(\d{4})'
result = re.sub(phone_re, r'\1****\2', 'เบอร์มือถือ:13812345678')
print(result) # เบอร์มือถือ:138****5678การใช้ java.util.regex ใน Java
import java.util.regex.*;
class RegexDemo {
public static void main(String[] args) {
String text = "Error [2026-03-12 18:05:09] Connection failed";
// คอมไพล์ regex (สภาพแวดล้อมการผลิตควรแคชอินสแตนซ์ Pattern)
Pattern p = Pattern.compile(
"(?<level>INFO|WARN|ERROR)\\s+\\[(?<time>[^\\]]+)\\]\\s+(?<message>.+)"
);
Matcher m = p.matcher(text);
if (m.find()) {
System.out.println("ระดับ: " + m.group("level"));
System.out.println("เวลา: " + m.group("time"));
System.out.println("ข้อความ: " + m.group("message"));
}
// แทนที่ตัวเลขทั้งหมด
String cleaned = "abc123def456".replaceAll("\\d+", "*");
System.out.println(cleaned); // abc*def*
}
}คำถามที่พบบ่อย
ReDoS คืออะไร? เหตุใดการทดสอบ regex จึงต้องป้องกัน ReDoS?
ReDoS (Regular Expression Denial of Service - การโจมตีปฏิเสธบริการด้วย Regular Expression) คือเมื่อ Regular Expression บางตัวที่สร้างขึ้นอย่างมีเจตนาไม่ดี (เช่น `(a+)+$` เมื่อจับคู่กับสตริงยาว) จะกระตุ้นให้เกิดการย้อนกลับที่เป็นอันตราย (catastrophic backtracking) ทำให้ CPU ใช้งาน 100% เบราว์เซอร์ค้างหรือเซิร์ฟเวอร์ล่ม เครื่องมือนี้ใช้ Web Worker เพื่อรันการจับคู่ regex ใน sandbox ตั้งค่า timeout 500ms ให้หยุดอัตโนมัติ แม้จะป้อน regex ที่เป็นอันตรายซึ่งกระตุ้นการย้อนกลับก็จะไม่ทำให้เบราว์เซอร์ของคุณค้าง ซึ่งเป็นคุณสมบัติความปลอดภัยหลักของเครื่องมือนี้
แฟล็ก 6 ตัว g, i, m, s, u, y ใน Regular Expression มีความหมายว่าอย่างไร?
g (global) จับคู่ทั้งหมด ค้นหาผลลัพธ์ทั้งหมดแทนที่จะเป็นตัวแรก; i (ignoreCase) ไม่สนใจตัวพิมพ์ใหญ่เล็ก; m (multiline) โหมดหลายบรรทัด ทำให้ ^ และ $ จับคู่กับจุดเริ่มต้น/จุดสิ้นสุดของแต่ละบรรทัด; s (dotAll) ทำให้จุด . จับคู่กับอักขระทุกตัวรวมถึงขึ้นบรรทัดใหม่; u (unicode) โหมด Unicode จัดการอีโมจิและอักขระหลายไบต์อย่างถูกต้อง; y (sticky) จับคู่แบบติดกัน จับคู่อย่างแม่นยำจากตำแหน่ง lastIndex เครื่องมือนี้มีปุ่มสลับภาพสำหรับ 6 แฟล็ก คลิกเพื่อเปิด/ปิดแบบเรียลไทม์
กลุ่มจับและกลุ่มที่ตั้งชื่อคืออะไร? ใช้งานอย่างไร?
กลุ่มจับหุ้มด้วยวงเล็บ `(pattern)` หลังจากจับคู่แล้วสามารถแยกสตริงย่อยผ่านการอ้างอิง $1, $2 ฯลฯ กลุ่มที่ตั้งชื่อใช้ไวยากรณ์ `(?<name>pattern)` หลังจากจับคู่แล้วสามารถอ้างอิงผ่าน `$<name>` ทำให้โค้ดอ่านง่ายขึ้น ตัวอย่างเช่น หลังจากจับคู่วันที่ด้วย `(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})` สามารถจัดรูปแบบใหม่ในสตริงที่ใช้แทนที่ด้วย `$<year>年$<month>月$<day>日` เครื่องมือนี้จะแสดงผลลัพธ์ของกลุ่มจับและกลุ่มที่ตั้งชื่อของการจับคู่แต่ละครั้งโดยอัตโนมัติ
รองรับไวยากรณ์ regex ของภาษาโปรแกรมใดบ้าง?
เครื่องมือนี้อาศัยกลไก RegExp ดั้งเดิมของ JavaScript เข้ากันได้กับไวยากรณ์ของกลไกหลักๆ ส่วนใหญ่ เช่น JS/TypeScript, โมดูล Python re, Java java.util.regex, PHP preg_*, Go regexp (ทั้งหมดอาศัยแนว PCRE/Perl) ความแตกต่างหลักอยู่ที่คุณสมบัติขั้นสูงบางอย่าง (เช่น วิธีเขียนกลุ่มที่ตั้งชื่อ `(?P<name>)` ของ Python, lookbehind ความยาวผันแปรของ .NET) 99% ของ regex ในการพัฒนาประจำวัน (การตรวจสอบ/แยกอีเมล เบอร์มือถือ URL วันที่ ฯลฯ) ใช้ร่วมกันได้ในทุกกลไก สามารถทดสอบโดยตรงบนเครื่องมือนี้แล้วคัดลอกไปใช้ในโค้ดได้
จะแชร์ regex ที่ทดสอบแล้วให้เพื่อนร่วมงานได้อย่างไร?
คลิกปุ่ม「แชร์」บนแถบเครื่องมือด้านบน เครื่องมือจะเข้ารหัส Regular Expression แฟล็ก และข้อความทดสอบปัจจุบันลงในพารามิเตอร์ URL โดยอัตโนมัติ และคัดลอกลิงก์ไปยังคลิปบอร์ด เพื่อนร่วมงานที่เปิดลิงก์จะเห็นสถานะการทดสอบที่เหมือนกันทุกประการ (pattern+flags+testText) เหมาะอย่างยิ่งสำหรับการทำงานเป็นทีมและดีบั๊กระยะไกล
สัญลักษณ์พิเศษ $1、$&、$`、$' ในสตริงที่ใช้แทนที่มีความหมายว่าอย่างไร?
ในสตริงที่ใช้แทนที่: $1、$2... หมายถึงกลุ่มจับตัวที่ N; $& หมายถึงข้อความทั้งหมดที่จับคู่ได้; $` หมายถึงส่วนก่อนข้อความที่จับคู่; $' หมายถึงส่วนหลังข้อความที่จับคู่; $$ หมายถึงอักขระ $ ตามตัว; $<name> หมายถึงกลุ่มที่ตั้งชื่อ ตัวอย่างเช่น การแทนที่ `(\d{4})-(\d{2})-(\d{2})` ด้วย `$2/$3/$1` สามารถเปลี่ยน 2026-03-12 เป็น 03/12/2026 ได้ พื้นที่แทนที่ของเครื่องมือนี้มีปุ่มแทรกด่วนสำหรับสัญลักษณ์พิเศษเหล่านี้
อภิธานศัพท์
- Regex / RegExp
- ตัวย่อของ Regular Expression (นิพจน์ปรกติ) ไวยากรณ์สตริงที่อธิบายรูปแบบการจับคู่ข้อความ ใช้สำหรับค้นหา แทนที่ ตรวจสอบข้อความ
- กลุ่มจับ (Capture Group)
- นิพจน์ย่อยที่หุ้มด้วยวงเล็บ (pattern) ผลลัพธ์การจับคู่สามารถอ้างอิงตามตำแหน่งผ่าน $1、$2
- กลุ่มที่ตั้งชื่อ (Named Group)
- กลุ่มจับที่กำหนดด้วยไวยากรณ์ (?<name>pattern) สามารถอ้างอิงตามชื่อผ่าน $<name> อ่านง่ายกว่าการอ้างอิงด้วยตัวเลข
- ReDoS
- Regular Expression Denial of Service (ปฏิเสธบริการด้วยนิพจน์ปรกติ) เกิดจากการย้อนกลับที่เป็นอันตรายทำให้เวลาทำงานของ regex เพิ่มขึ้นแบบทวีคูณ ทำให้เบราว์เซอร์หรือเซิร์ฟเวอร์ค้าง
- การย้อนกลับ (Backtracking)
- กลไกของกลไก regex NFA ที่ถอยกลับไปที่ตำแหน่งก่อนหน้าเพื่อลองความเป็นไปได้อื่นเมื่อการจับคู่ล้มเหลว regex ที่ซับซ้อนอาจทำให้เกิดการย้อนกลับแบบทวีคูณ
- แฟล็ก (Flags)
- พารามิเตอร์ที่แก้ไขพฤติกรรมการจับคู่ regex ที่พบบ่อย ได้แก่ g(ทั้งหมด)、i(ไม่สนใจตัวพิมพ์)、m(หลายบรรทัด)、s(dotAll)、u(Unicode)、y(ติดกัน)
- การมองรอบ (Lookaround)
- การยืนยันความกว้างศูนย์ รวมถึงการมองข้างหน้าเชิงบวก (?=...) การมองข้างหน้าเชิงลบ (?!) การมองข้างหลังเชิงบวก (?<=...) การมองข้างหลังเชิงลบ (?<!...) เพียงกำหนดตำแหน่งแต่ไม่กินอักขระ
- PCRE
- Perl Compatible Regular Expressions (นิพจน์ปรกติที่เข้ากันได้กับ Perl) มาตรฐานไวยากรณ์ regex ที่ใช้กันอย่างแพร่หลาย ถูกนำไปใช้โดยภาษาส่วนใหญ่เช่น PHP、Java、Python
- Web Worker
- API เธรดพื้นหลังที่เบราว์เซอร์จัดให้แยกจากเธรดหลัก เครื่องมือนี้ใช้มันเพื่อรัน regex ใน Worker แม้จะเกิด ReDoS ก็จะไม่บล็อก UI
- ควอนติไฟเออร์ (Quantifier)
- ไวยากรณ์ที่กำหนดจำนวนครั้งของการทำซ้ำองค์ประกอบก่อนหน้า: *(0 หรือมากกว่า)、+(1 หรือมากกว่า)、?(0 หรือ 1)、{n}(พอดี n ครั้ง)、{n,m}(n ถึง m ครั้ง)
ตารางอ้างอิงด่วนอักขระเมตา regex ที่ใช้บ่อย
| อักขระเมตา | ความหมาย | คำอธิบายตัวอย่าง |
|---|---|---|
. | อักขระเดี่ยวใดๆ (ไม่รวมขึ้นบรรทัดใหม่ ภายใต้แฟล็ก s จะรวมขึ้นบรรทัดใหม่) | a.c จับคู่ abc、aXc ไม่จับคู่ a\nc |
\d | อักขระตัวเลข เทียบเท่า [0-9] | \d{3} จับคู่ 123、456 |
\w | อักขระคำ เทียบเท่า [A-Za-z0-9_] | \w+ จับคู่ hello_123 |
\s | อักขระช่องว่าง (ช่องว่าง/แท็บ/ขึ้นบรรทัดใหม่ ฯลฯ) | a\sb จับคู่ a b (ช่องว่างตรงกลาง) |
^ | จุดเริ่มต้นสตริง (ภายใต้แฟล็ก m คือจุดเริ่มต้นบรรทัด) | ^Hello จับคู่ Hello ที่จุดเริ่มต้นบรรทัด |
$ | จุดสิ้นสุดสตริง (ภายใต้แฟล็ก m คือจุดสิ้นสุดบรรทัด) | end$ จับคู่ end ที่จุดสิ้นสุดบรรทัด |
\b | ขอบเขตคำ | \bcat\b จับคู่คำ cat ที่ยืนอยู่คนเดียว ไม่จับคู่ category |
* | องค์ประกอบก่อนหน้าซ้ำ 0 ครั้งหรือมากกว่า (โลภ) | ab*c จับคู่ ac、abc、abbc |
+ | องค์ประกอบก่อนหน้าซ้ำ 1 ครั้งหรือมากกว่า | ab+c จับคู่ abc、abbc ไม่จับคู่ ac |
? | องค์ประกอบก่อนหน้า 0 ครั้งหรือ 1 ครั้ง (หรือใช้สำหรับไม่โลภ/การมองรอบ) | colou?r จับคู่ color และ colour |
| | แตกแขนง/หรือ จับคู่ด้านซ้ายหรือด้านขวา | cat|dog จับคู่ cat หรือ dog |
[...] | เซตอักขระ จับคู่อักขระใดๆ ในนั้น | [aeiou] จับคู่สระใดๆ |
แม่แบบอ้างอิงด่วน Regular Expression ที่ใช้บ่อย
| การใช้งาน | Regular Expression | แฟล็กที่แนะนำ |
|---|---|---|
| ที่อยู่อีเมล | [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} | g |
| เบอร์มือถือจีนแผ่นดินใหญ่ | 1[3-9]\d{9} | g |
| ลิงก์ URL | https?:\/\/[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b[-a-zA-Z0-9()@:%_+.~#?&/=]* | gi |
| ที่อยู่ IPv4 | \b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b | g |
| วันที่ YYYY-MM-DD | \d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01]) | g |
| เลขบัตรประชาชน (18 หลัก) | [1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}[\dXx] | g |
| UUID | [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12} | gi |
Authoritative References
- จำลองตาบอดสี
- ตัวแปลงสี
- เครื่องมือแปลง htaccess เป็น Nginx
- ตัวแปลง SQL
- ตัวแยกคุกกี้
- ตัวสร้าง Cron
- ตัวตรวจสอบ Cron
- จัดรูปแบบ CSS
- บีบอัด CSS
- CSV เป็น Excel
- แปลงค่าเงิน
- ตรวจสอบความแตกต่าง
- สร้าง Favicon
- จัดรูปแบบ XML
- ตัวแปลงเลขฐานสิบหก
- จัดรูปแบบ HTML
- บีบอัด HTML
- HTML เป็น Markdown
- แปลง Markdown เป็น HTML
- ตัวจัดรูปแบบ JavaScript
- บีบอัด JS
- เครื่องมือจัดรูปแบบ JSX
- บีบอัด JSX
- การจัดกลุ่มคำหลัก
- เครื่องมือสร้าง Lorem Ipsum
- สร้างตาราง Markdown
- เครื่องมือสร้าง Meta Tag
- เครื่องมือสร้างรหัสผ่าน
- เครื่องมือตรวจสอบความแข็งแรงของรหัสผ่าน
- เครื่องสร้าง QR Code/บาร์โค้ด
- เครื่องมือทดสอบ Regex
- สร้าง URL Slug
- สร้าง SQL
- เครื่องมือจัดรูปแบบ SQL
- เครื่องนับคำ
- เครื่องมือเวลา
- จัดรูปแบบ TS
- บีบอัด TS
- จัดรูปแบบ TSX
- บีบอัด TSX
- ตัวแปลง Unix Timestamp
- เครื่องมือสร้าง UUID
- จัดรูปแบบ YAML
- Case Converter