นิพจน์ทั่วไปและอ็อบเจ็กต์ 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.