JS RegExp फ्लैग्स
In this page:
/pattern/g // global
/pattern/i // case-insensitive
/pattern/m // multiline
/pattern/gi // combined
Global Flag (g)
बिना g के, एक regex किसी string में सिर्फ पहला match ढूंढकर रुक जाता है -- g के साथ, .match() और .replace() जैसे methods पूरी string में हर match ढूंढते और उस पर काम करते हैं, सिर्फ पहली occurrence पर नहीं।
उदाहरण: The Global Flag (g)
console.log("cat cat cat".match(/cat/)); // only the first match
console.log("cat cat cat".match(/cat/g)); // every match
Case-Insensitive Flag (i)
i flag किसी pattern को upper या lower case की परवाह किए बिना मैच कराता है -- /cat/i "cat", "CAT", "Cat", और किसी भी और capitalization से मैच करता है -- यह तब उपयोगी है जब input का exact case भरोसेमंद न हो, जैसे किसी user-entered शब्द को validate करना।
उदाहरण: The Case-Insensitive Flag (i)
console.log(/cat/i.test("CAT")); // true, case-insensitive
Multiline Flag (m)
डिफ़ॉल्ट रूप से, ^ सिर्फ पूरी string की बिल्कुल शुरुआत से और $ सिर्फ बिल्कुल अंत से मैच करता है, किसी multi-line string में भी -- m flag इसे बदल देता है ताकि ^ और $ इसके बजाय string के अंदर हर individual line की शुरुआत और अंत से मैच करें।
उदाहरण: The Multiline Flag (m)
const text = "line one\nline two";
console.log(text.match(/^line/gm)); // matches start of each line
Unicode Flag (u)
u flag पूरी Unicode-aware pattern matching को सक्षम करता है, Basic Multilingual Plane के बाहर के characters (जैसे कई emoji) को सही तरीके से संभालते हुए, जिन्हें इस flag के बिना एक की जगह दो अलग characters के रूप में गलत समझा जा सकता है।
उदाहरण: The Unicode Flag (u)
console.log(/\u{1F600}/u.test("\u{1F600}")); // correctly handles characters outside the basic plane
कई Flags को Combine करना
Flags को closing slash के बाद किसी भी क्रम में combine किया जा सकता है -- /pattern/gi global और case-insensitive matching दोनों एक साथ लागू करता है, /pattern/gm global और multiline को मिलाता है, वगैरह, जो आपको किसी task को ठीक-ठीक चाहिए व्यवहार मिलाने देता है।
उदाहरण: Combining Multiple Flags
console.log("Cat cat CAT".match(/cat/gi)); // combines global + case-insensitive
- .replace() के साथ इस्तेमाल होने वाले pattern में g flag भूल जाना, जो फिर string में हर occurrence के बजाय सिर्फ बहुत पहले match को replace करता है।
- lastIndex reset किए बिना कई .test() calls में g flag वाले regex object को दोबारा इस्तेमाल करना, stateful matching position की वजह से alternating true/false results देते हुए।
- आदत से i flag जोड़ना भले ही case sensitivity असल में intended behavior हो।
- g (global) किसी string में सभी matches ढूंढता है, सिर्फ पहला नहीं।
- i (case-insensitive) upper या lower case चाहे जो भी हो match करता है।
- m (multiline) ^ और $ को पूरी string के बजाय हर line की शुरुआत/अंत से match कराता है।
सभी standard regex flags (g, i, m, s, u, y) हर modern browser में supported हैं।
Chapter Quiz — Complete all 26 topics to unlock
0/26 topics done
Complete these topics first:
- JS JSON
- JS Regular Expressions
- JS Fetch API
- JS LocalStorage and SessionStorage
- JS Cookies
- JS setTimeout and setInterval
- JS Event Loop
- JS Web Workers
- JS Service Workers
- JS AJAX
- JS AJAX Intro
- JS AJAX XMLHttp
- JS AJAX Request
- JS AJAX Response
- JS AJAX XML
- JS AJAX PHP
- JS AJAX Database
- JS JSONP
- JS RegExp Flags
- JS RegExp Classes
- JS RegExp Metachars
- JS RegExp Assertions
- JS RegExp Groups
- JS RegExp Quantifiers
- JS JSON HTML
- JS JSON vs XML