นิพจน์ทั่วไปและอ็อบเจ็กต์ RegExp
นิพจน์ทั่วไปคือวัตถุที่อธิบายถึงรูปแบบของอักขระ
JavaScript RegExp คลาสแสดงถึงนิพจน์ทั่วไปและทั้ง String และ RegExp กำหนดวิธีการที่ใช้นิพจน์ทั่วไปเพื่อดำเนินการฟังก์ชันการจับคู่รูปแบบและการค้นหาและแทนที่ที่มีประสิทธิภาพบนข้อความ
ไวยากรณ์
นิพจน์ทั่วไปสามารถกำหนดได้ด้วย RegExp () ผู้สร้างดังต่อไปนี้ -
var pattern = new RegExp(pattern, attributes);
or simply
var pattern = /pattern/attributes;
นี่คือคำอธิบายของพารามิเตอร์ -
pattern - สตริงที่ระบุรูปแบบของนิพจน์ทั่วไปหรือนิพจน์ทั่วไปอื่น
attributes - สตริงที่เป็นทางเลือกที่มีแอตทริบิวต์ "g", "i" และ "m" ซึ่งระบุการจับคู่แบบโกลบอลไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่และหลายบรรทัดตามลำดับ
วงเล็บ
วงเล็บ ([]) มีความหมายพิเศษเมื่อใช้ในบริบทของนิพจน์ทั่วไป ใช้เพื่อค้นหาช่วงของอักขระ
| ซีเนียร์ | นิพจน์และคำอธิบาย |
|---|---|
| 1 | [...] อักขระใดตัวหนึ่งระหว่างวงเล็บ |
| 2 | [^...] อักขระใดตัวหนึ่งที่ไม่อยู่ระหว่างวงเล็บ |
| 3 | [0-9] ตรงกับตัวเลขทศนิยมใด ๆ ตั้งแต่ 0 ถึง 9 |
| 4 | [a-z] จับคู่อักขระใดก็ได้จากตัวพิมพ์เล็ก a ผ่านตัวพิมพ์เล็ก z. |
| 5 | [A-Z] ตรงกับอักขระใด ๆ จากตัวพิมพ์ใหญ่ A ผ่านตัวพิมพ์ใหญ่ Z. |
| 6 | [a-Z] จับคู่อักขระใดก็ได้จากตัวพิมพ์เล็ก a ผ่านตัวพิมพ์ใหญ่ Z. |
ช่วงที่แสดงด้านบนเป็นช่วงทั่วไป คุณยังสามารถใช้ช่วง [0-3] เพื่อจับคู่เลขฐานสิบตั้งแต่ 0 ถึง 3 หรือช่วง [bv] เพื่อจับคู่อักขระตัวพิมพ์เล็กที่มีตั้งแต่b ผ่าน v.
Quantifiers
ความถี่หรือตำแหน่งของลำดับอักขระในวงเล็บและอักขระเดี่ยวสามารถแสดงได้ด้วยอักขระพิเศษ อักขระพิเศษแต่ละตัวมีความหมายแฝงเฉพาะ แฟล็ก +, *,? และ $ ทั้งหมดเป็นไปตามลำดับอักขระ
| ซีเนียร์ | นิพจน์และคำอธิบาย |
|---|---|
| 1 | p+ ตรงกับสตริงใด ๆ ที่มี p อย่างน้อยหนึ่งตัว |
| 2 | p* ตรงกับสตริงใด ๆ ที่มีค่า p เป็นศูนย์ขึ้นไป |
| 3 | p? ตรงกับสตริงใด ๆ ที่มีมากที่สุดหนึ่ง p |
| 4 | p{N} ตรงกับสตริงที่มีลำดับของ N พี |
| 5 | p{2,3} ตรงกับสตริงใด ๆ ที่มีลำดับของสองหรือสาม p |
| 6 | p{2, } ตรงกับสตริงใด ๆ ที่มีลำดับอย่างน้อยสอง p |
| 7 | p$ มันจับคู่สตริงใด ๆ กับ p ที่ท้ายของมัน |
| 8 | ^p มันจับคู่สตริงใด ๆ กับ p ที่จุดเริ่มต้นของมัน |
ตัวอย่าง
ตัวอย่างต่อไปนี้อธิบายเพิ่มเติมเกี่ยวกับอักขระที่ตรงกัน
| ซีเนียร์ | นิพจน์และคำอธิบาย |
|---|---|
| 1 | [^a-zA-Z] ตรงกับสตริงที่ไม่มีอักขระใด ๆ ตั้งแต่ a ผ่าน z และ A ผ่าน Z. |
| 2 | p.p ตรงกับสตริงที่มี p, ตามด้วยอักขระใด ๆ แล้วตามด้วยตัวอื่น p. |
| 3 | ^.{2}$ ตรงกับสตริงที่มีอักขระสองตัว |
| 4 | <b>(.*)</b> ตรงกับสตริงใด ๆ ที่อยู่ภายใน <b> และ </b> |
| 5 | p(hp)* ตรงกับสตริงใด ๆ ที่มี p ตามด้วยศูนย์หรือมากกว่าของลำดับ hp. |
อักขระตามตัวอักษร
| ซีเนียร์ | ตัวละครและคำอธิบาย |
|---|---|
| 1 | Alphanumeric ตัวเอง |
| 2 | \0 อักขระ NUL (\ u0000) |
| 3 | \t แท็บ (\ u0009 |
| 4 | \n ขึ้นบรรทัดใหม่ (\ u000A) |
| 5 | \v แท็บแนวตั้ง (\ u000B) |
| 6 | \f ฟีดแบบฟอร์ม (\ u000C) |
| 7 | \r การคืนรถ (\ u000D) |
| 8 | \xnn อักขระละตินที่ระบุโดยเลขฐานสิบหก nn; ตัวอย่างเช่น \ x0A เหมือนกับ \ n |
| 9 | \uxxxx อักขระ Unicode ที่ระบุโดยเลขฐานสิบหก xxxx; ตัวอย่างเช่น \ u0009 เหมือนกับ \ t |
| 10 | \cX อักขระควบคุม ^ X; ตัวอย่างเช่น \ cJ เทียบเท่ากับอักขระขึ้นบรรทัดใหม่ \ n |
Metacharacters
อักขระเมตาเป็นเพียงอักขระตามตัวอักษรที่นำหน้าด้วยแบ็กสแลชซึ่งทำหน้าที่ให้ความหมายพิเศษรวมกัน
ตัวอย่างเช่นคุณสามารถค้นหาเงินจำนวนมากโดยใช้อักขระ '\ d': /([\d]+)000/, ที่นี่ \d จะค้นหาสตริงของอักขระตัวเลข
ตารางต่อไปนี้แสดงชุดของอักขระเมตาซึ่งสามารถใช้ได้ใน PERL Style Regular Expressions
| ซีเนียร์ | ตัวละครและคำอธิบาย |
|---|---|
| 1 | . อักขระเดี่ยว |
| 2 | \s อักขระเว้นวรรค (ช่องว่างแท็บขึ้นบรรทัดใหม่) |
| 3 | \S อักขระที่ไม่ใช่ช่องว่าง |
| 4 | \d ตัวเลข (0-9) |
| 5 | \D ไม่ใช่ตัวเลข |
| 6 | \w อักขระคำ (az, AZ, 0-9, _) |
| 7 | \W อักขระที่ไม่ใช่คำ |
| 8 | [\b] backspace ตามตัวอักษร (กรณีพิเศษ) |
| 9 | [aeiou] จับคู่อักขระเดี่ยวในชุดที่กำหนด |
| 10 | [^aeiou] จับคู่อักขระเดี่ยวนอกชุดที่กำหนด |
| 11 | (foo|bar|baz) ตรงกับทางเลือกใด ๆ ที่ระบุ |
ตัวปรับเปลี่ยน
มีตัวปรับแต่งหลายตัวที่สามารถทำให้วิธีการทำงานของคุณง่ายขึ้น regexps, เช่นความไวของตัวพิมพ์เล็กค้นหาในหลายบรรทัด ฯลฯ
| ซีเนียร์ | ตัวปรับแต่งและคำอธิบาย |
|---|---|
| 1 | i ทำการจับคู่แบบไม่คำนึงถึงขนาดตัวพิมพ์ |
| 2 | m ระบุว่าถ้าสตริงมีอักขระขึ้นบรรทัดใหม่หรืออักขระส่งคืนค่าขนส่งตอนนี้ตัวดำเนินการ ^ และ $ จะจับคู่กับขอบเขตขึ้นบรรทัดใหม่แทนที่จะเป็นขอบเขตสตริง |
| 3 | g ทำการแข่งขันทั่วโลกนั่นคือค้นหาการแข่งขันทั้งหมดแทนที่จะหยุดหลังจากการแข่งขันครั้งแรก |
คุณสมบัติ RegExp
นี่คือรายการคุณสมบัติที่เกี่ยวข้องกับ RegExp และคำอธิบาย
| ซีเนียร์ | คุณสมบัติและคำอธิบาย |
|---|---|
| 1 | constructor
Specifies the function that creates an object's prototype. |
| 2 | global
Specifies if the "g" modifier is set. |
| 3 | ignoreCase
Specifies if the "i" modifier is set. |
| 4 | lastIndex
The index at which to start the next match. |
| 5 | multiline
Specifies if the "m" modifier is set. |
| 6 | source
The text of the pattern. |
In the following sections, we will have a few examples to demonstrate the usage of RegExp properties.
RegExp Methods
Here is a list of the methods associated with RegExp along with their description.
| Sr.No. | Method & Description |
|---|---|
| 1 | exec()
Executes a search for a match in its string parameter. |
| 2 | test()
Tests for a match in its string parameter. |
| 3 | toSource()
Returns an object literal representing the specified object; you can use this value to create a new object. |
| 4 | toString()
Returns a string representing the specified object. |
In the following sections, we will have a few examples to demonstrate the usage of RegExp methods.