If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
JavaScript में regular expressions (RegEx
) का use string patterns को match करने के लिए होता है। लेकिन कई बार, इनका syntax complex lag सकता है, especially beginners के लिए।
इस blog में हम regular expressions को simplify करेंगे , और कुछ real-world examples के साथ समझेंगे कि इनका use कैसे किया जाता है.
Regular expressions को /pattern/flags
के format में लिखा जाता है।
Pattern : यह वो sequence है जिसको आप match करना चाहते हो।
Flags : यह optional हैं और इनका use matching behavior को control करने के लिए होता है।
Example : /hello/g
, यहां hello
pattern है जो string में "hello" को search करेगा। Flag g
का मतलब है global search, मतलब सारी occurrences को match करेगा, सिर्फ पहली को नहीं।
g (Global) : Poore string में pattern match करता है।
i (Case-insensitive) : Match करते वक्त case को ignore करता है।
m (Multiline) : Multiline mode को enable करता है जहाँ ^
and $
start और end of line को denote करते हैं।
●●●
चलिए अब regex का use करके कुछ examples को देख लेते हैं
सबसे basic form में, आप literal characters का use करते हैं string में match करने के लिए।
let pattern = /hello/;
console.log(pattern.test('hello world')); // true
console.log(pattern.test('hi world')); // false
यहां , /hello/
pattern को string में "hello"
search के लिए use किया जा रहा है।
Regular Expressions में कुछ special characters होते हैं जो specific patterns को represent करते हैं , जिन्हे अभी अपने ऊपर पढ़ा।
. (Dot) : कोई भी single character को match करता है।
^ (Caret) : String के start को denote करता है।
$ (Dollar) : String के end को denote करता है।
let pattern = /^h.llo$/;
console.log(pattern.test('hello')); // true
console.log(pattern.test('hallo')); // true
console.log(pattern.test('heillo')); // false
यहां , ^h.llo$
pattern "h" से start और "llo" पे end hone wale strings को match करेगा जिसमे बीच का character कोई भी हो सकता है।
●●●
Character classes specific characters या character range
को match करने के लिए use होती हैं।
[abc] : "a", "b", या "c" को match करेगा।
[a-z] : Lowercase letters को match करेगा।
[A-Z] : Uppercase letters को match करेगा।
[0-9] : Digits को match करेगा।
\d : एक digit (0-9) को match करता है।
\w : एक alphanumeric character (a-z, A-Z, 0-9, _) को match करता है।
\s : एक whitespace character (space, तब) को match करता है।
let pattern = /[a-z]at/;
console.log(pattern.test('cat')); // true
console.log(pattern.test('bat')); // true
console.log(pattern.test('Cat')); // false
यहां , [a-z]at
pattern किसी भी lowercase letter के साथ "at" को match करेगा, means जिस भी string के end में at आएगा।
●●●
Quantifiers specify करते हैं कि एक character या group कितनी बार repeat हो सकता है।
* (Asterisk) : 0 या ज़्यादा बार।
+ (Plus) : कम से कम 1 बार।
? (Question Mark) : 0 या 1 बार।
{n} : Exactly n बार।
{n,} : कम से कम n बार।
{n,m} : कम से कम n और ज़्यादा से ज़्यादा m बार।
let pattern = /ab*c/;
console.log(pattern.test('ac')); // true
console.log(pattern.test('abc')); // true
console.log(pattern.test('abbc')); // true
यहां , अब *c
pattern "a" के बाद 0 या ज़्यादा "b" के occurrences के साथ "c" को match करेगा।
●●●
Grouping का use parts of expression को group करने के लिए होता है, और alternation (|) multiple patterns को match करने के लिए।
(abc) : "abc" को एक group के रूप में treat करता है।
(a|b) : "a" या "b" को match करता है।
let pattern = /(cat|dog)s?/;
console.log(pattern.test('cats')); // true
console.log(pattern.test('dog')); // true
console.log(pattern.test('dogs')); // true
console.log(pattern.test('catdog')); // false
यहां , (cat|dog)s?
pattern "cat" या "dog" के साथ optional "s" को match करेगा।
●●●
Lookaheads और Lookbehinds allow करते हैं patterns को match करने के बिना उसका part बनाये -
Positive Lookahead ((?=...)) : Ensure करता है कि specified pattern आगे आये।
Negative Lookahead ((?!...)) : Ensure करता है कि specified pattern आगे न आये।
Positive Lookbehind ((?<=...)) : Ensure करता है कि specified pattern पहले आये।
Negative Lookbehind ((?<!...)) : Ensure करता है कि specified pattern पहले न आये।
let pattern = /(?<=\$)\d+/;
console.log(pattern.test('$100')); // true
console.log(pattern.test('100')); // false
यहां , (?<=\$)\d
+ pattern उन digits को match करेगा जो "$" के बाद आते हैं।
Named capture groups allow करते हैं captured substrings को descriptive names देना।
Syntax : (?<name>...)
let pattern = /(?<areaCode>\d{3})-(?<mainNumber>\d{7})/;
let match = "123-4567890".match(pattern);
console.log(match.groups.areaCode); // 123
console.log(match.groups.mainNumber); // 4567890
यहां , (?<areaCode>\d{3})
और (?<mainNumber>\d{7})
named groups define करते हैं जो area code और main number को store करते हैं।
●●●
चलिए अब कुछ real world examples देख लेते हैं जो commonly use किये जाते हैं।
let emailPattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
console.log(emailPattern.test('test@example.com')); // true
console.log(emailPattern.test('invalid-email')); // false
let phonePattern = /^[6-9]\d{9}$/;
console.log(phonePattern.test('9876543210')); // true
console.log(phonePattern.test('1234567890')); // false
Complex password validation with at least one uppercase letter, one lowercase letter, one digit, and one special character :
let passwordPattern = /^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,20}$/;
console.log(passwordPattern.test('StrongPass1@')); // true
console.log(passwordPattern.test('weakpass')); // false
let url = "https://www.example.com/path?query=string";
let domainPattern = /^https?:\/\/(www\.)?([^\/]+)/;
let match = url.match(domainPattern);
console.log(match[2]); // example.com
●●●
JavaScript Regular Expressions एक powerful tool है जो strings के साथ काम करने में बहुत helpful होता है। इस guide में हमने basics से लेकर advanced topics तक cover किया, जिससे आप easily RegEx
के concepts को समझ सको और effectively implement कर सको।
आपको यह blog अच्छा लगा होगा।
Happy coding :)
Loading ...