Skip to content
geeksforgeeks
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Tutorials
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
  • Practice
    • GfG 160: Daily DSA
    • Problem of the Day
    • Practice Coding Problems
    • GfG SDE Sheet
  • PHP Tutorial
  • PHP Exercises
  • PHP Array
  • PHP String
  • PHP Calendar
  • PHP Filesystem
  • PHP Math
  • PHP Programs
  • PHP Array Programs
  • PHP String Programs
  • PHP Interview Questions
  • PHP GMP
  • PHP IntlChar
  • PHP Image Processing
  • PHP DsSet
  • PHP DsMap
  • PHP Formatter
  • Web Technology
Open In App
Next Article:
PHP Form Handling
Next article icon

PHP | Regular Expressions

Last Updated : 10 Feb, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report
Regular expressions commonly known as a regex (regexes) are a sequence of characters describing a special search pattern in the form of text string. They are basically used in programming world algorithms for matching some loosely defined patterns to achieve some relevant tasks. Some times regexes are understood as a mini programming language with a pattern notation which allows the users to parse text strings. The exact sequence of characters are unpredictable beforehand, so the regex helps in fetching the required strings based on a pattern definition. Regular Expression is a compact way of describing a string pattern that matches a particular amount of text. As you know, PHP is an open-source language commonly used for website creation, it provides regular expression functions as an important tool. Like PHP, many other programming languages have their own implementation of regular expressions. This is the same with other applications also, which have their own support of regexes having various syntaxes. Many available modern languages and tools apply regexes on very large files and strings. Let us look into some of the advantages and uses of regular expressions in our applications. Advantages and uses of Regular expressions: In many scenarios, developers face problems whenever data are collected in free text fields as most of the programming deals with data entries. Regular expressions are used almost everywhere in today's application programming.
  • Regular expressions help in validation of text strings which are of programmer's interest.
  • It offers a powerful tool for analyzing, searching a pattern and modifying the text data.
  • It helps in searching specific string pattern and extracting matching results in a flexible manner.
  • It helps in parsing text files looking for a defined sequence of characters for further analysis or data manipulation.
  • With the help of in-built regexes functions, easy and simple solutions are provided for identifying patterns.
  • It effectively saves a lot of development time, which are in search of specific string pattern.
  • It helps in important user information validations like email address, phone numbers and IP address.
  • It helps in highlighting special keywords in a file based on search result or input.
  • It helps in identifying specific template tags and replacing those data with the actual data as per the requirement.
  • Regexes are very useful for creation of HTML template system recognizing tags.
  • Regexes are mostly used for browser detection, spam filtration, checking password strength and form validations.
We cannot cover everything under this topic, but let us look into some of the major regular expression concepts. The following table shows some regular expressions and the corresponding string which matches the regular expression pattern.
Regular Expression Matches
geeksThe string "geeks"
^geeksThe string which starts with "geeks"
geeks$The string which have "geeks" at the end.
^geeks$The string where "geeks" is alone on a string.
[abc]a, b, or c
[a-z]Any lowercase letter
[^A-Z]Any letter which is NOT a uppercase letter
(gif|png)Either "gif" or "png"
[a-z]+One or more lowercase letters
^[a-zA-Z0-9]{1, }$Any word with at least one number or one letter
([ax])([by])ab, ay, xb, xy
[^A-Za-z0-9]Any symbol other than a letter or other than number
([A-Z]{3}|[0-9]{5})Matches three letters or five numbers
Note: Complex search patterns can be created by applying some basic regular expression rules. Even many arithmetic operators like +, ^, - are used by regular expressions for creating little complex patterns. Operators in Regular Expression: Let us look into some of the operators in PHP regular expressions.
OperatorDescription
^It denotes the start of string.
$It denotes the end of string.
.It denotes almost any single character.
()It denotes a group of expressions.
[]It finds a range of characters for example [xyz] means x, y or z .
[^]It finds the items which are not in range for example [^abc] means NOT a, b or c.
– (dash)It finds for character range within the given item range for example [a-z] means a through z.
| (pipe) It is the logical OR for example x | y means x OR y.
?It denotes zero or one of preceding character or item range.
*It denotes zero or more of preceding character or item range.
+It denotes one or more of preceding character or item range.
{n} It denotes exactly n times of preceding character or item range for example n{2}.
{n, }It denotes atleast n times of preceding character or item range for example n{2, }.
{n, m}It denotes atleast n but not more than m times for example n{2, 4} means 2 to 4 of n.
\It denotes the escape character.
Special Character Classes in Regular Expressions: Let us look into some of the special characters used in regular expressions.
Special CharacterMeaning
\nIt denotes a new line.
\rIt denotes a carriage return.
\tIt denotes a tab.
\vIt denotes a vertical tab.
\fIt denotes a form feed.
\xxxIt denotes octal character xxx.
\xhhIt denotes hex character hh.
Shorthand Character Sets: Let us look into some shorthand character sets available.
ShorthandMeaning
\sMatches space characters like space, newline or tab.
\dMatches any digit from 0 to 9.
\wMatches word characters including all lower and upper case letters, digits and underscore.
Predefined functions or Regex library: Let us look into the quick cheat sheet of pre-defined functions for regular expressions in PHP. PHP provides the programmers to many useful functions to work with regular expressions. The below listed in-built functions are case-sensitive.
FunctionDefinition
preg_match()This function searches for a specific pattern against some string. It returns true if pattern exists and false otherwise.
preg_match_all()This function searches for all the occurrences of string pattern against the string. This function is very useful for search and replace.
ereg_replace()This function searches for specific string pattern and replace the original string with the replacement string, if found.
eregi_replace()The function behaves like ereg_replace() provided the search for pattern is not case sensitive.
preg_replace()This function behaves like ereg_replace() function provided the regular expressions can be used in the pattern and replacement strings.
preg_split()The function behaves like the PHP split() function. It splits the string by regular expressions as its parameters.
preg_grep()This function searches all elements which matches the regular expression pattern and returns the output array.
preg_quote()This function takes string and quotes in front of every character which matches the regular expression.
ereg()This function searches for a string which is specified by a pattern and returns true if found, otherwise returns false.
eregi()This function behaves like ereg() function provided the search is not case sensitive.
Note:
  • By default, regular expressions are case sensitive.
  • There is a difference between strings inside single quotes and strings inside double quotes in PHP. The former are treated literally, whereas for the strings inside double-quotes means the content of the variable is printed instead of just printing their names.
Example 1: php


// Declare a regular expression
$regex = '/^[a-zA-Z ]*$/';

// Declare a string
$nameString = 'Sharukh khan';

// Use preg_match() function to
// search string pattern
if(preg_match($regex, $nameString)) {
    echo("Name string matching with"
        . " regular expression");
}
else {
    echo("Only letters and white space"
        . " allowed in name string"); 
}

?>
Output:
Name string matching with regular expression
Example 2: php


// Declare a regular expression
$regex = "/(.*)<\/b>/U";

// Declare a string
$inputString = "Name: John Position: Developer";

// Use preg_match_all() function to perform
// a global regular expression match
preg_match_all($regex, $inputString, $output);

echo $output[0][0]." 
"
.$output[0][1]."\n"; ?>
Output:
John
Developer
Example 3:
php


// Declare a regular expression
$regex = "([0-9]+)";

// Declare a string
$original = "Completed graduation in 2004";
$replaceWith = "2002";
 
// Use ereg_replace() function to search a
// string pattern in an other string
$original = ereg_replace($regex, $replaceWith, $original); 
    
// Display result
echo $original;
 
?>
Output:
Completed graduation in 2002
Example 4: php

php

// Declare a string
$ip = "134.645.478.670"; 

// Declare a regular expression
$regex = "/\./";

// Use preg_split() function to
// convert a given string into
// an array
$output = preg_split ($regex, $ip); 

echo "$output[0] 
"
; echo "$output[1]
"
; echo "$output[2]
"
; echo "$output[3]
"
; ?>
Output:
134
645
478
670
Metacharacters: There are two kinds of characters that are used in regular expressions these are: Regular characters and Metacharacters. Regular characters are those characters which have a 'literal' meaning and Metacharacters are those characters which have 'special' meaning in regular expression.
MetacharacterDescriptionExample
.It matches any single character other than a new line. /./ matches string which has a single character.
^It matches the beginning of string./^geeks/ matches any string that starts with geeks.
$It matches the string pattern at the end of the string./com$/ matches string ending with com for example google.com etc.
*It matches zero or more characters./com*/ matches commute, computer, compromise etc.
+It matches preceding character appear atleast once.For example /z+oom/ matches zoom.
\It is used to esacape metacharacters in regex./google\.com/ will treat the dot as a literal value, not metacharacter.
a-zIt matches lower case letters.geeks
A-ZIt matches upper case letters. GEEKS
0-9It matches any number between 0 and 9./0-5/ matches 0, 1, 2, 3, 4, 5
[...]It matches character class./[pqr]/ matches pqr
Other Examples:
Regular expressionMeaning
^[.-a-z0-9A-Z] It matches string with dot, dash and any lower case letters, numbers between 0 and 9 and upper case letters.
+@[a-z0-9A-Z] It matches string with @ symbol in the beginning followed by any lower case letters, numbers between 0 and 9 and upper case letters.
+\.[a-z]{2, 6}$/ It escapes the dot and then matches string with any lower case letters with string length between 2 and 6 at the end.
Note:
  • Metacharacters are very powerful in regular expressions pattern matching solutions. It handles a lot of complex pattern processing.
  • Every character which is not a metacharacter is definitely a regular character.
  • Every regular character matches the same character by itself.
POSIX Regular Expressions: Some regular expressions in PHP are like arithmetic expressions which are called POSIX regular expressions. Some times, complex expression are created by combining various elements or operators in regular expressions. The very basic regex is the one which matches a single character. Lets look into some of the POSIX regular expressions.
RegexMeaning
[0-9] It matches digit from 0 through 9.
[a-z] It matches any lowercase letter from a through z.
[A-Z] It matches any uppercase letter from A through Z.
[a-Z] It matches any lowercase letter a through uppercase letter Z.
[:lower:] It matches any lower case letters.
[:upper:] It matches any upper case letters.
[:alpha:] It matches all alphabetic characters or letters from a-z and A-Z.
[[:alpha:]] It matches any string containing alphabetic characters or letters.
[:alnum:] It matches all alphanumeric characters i.e all digits(0-9) and letters (a-z A-Z).
[[:alnum:]] It matches any string containing alphanumeric characters and digits.
[:digit:] It matches all the digits from 0 to 9.
[[:digit:]] It matches any string containing digits from 0 to 9.
[:xdigit:] It matches all the hexadecimal digits.
[:punct:] It matches all the punctuation symbols.
[:blank:] It matches blank characters like space and tab.
[:space:] It matches all whitespace characters like line breaks.
[[:space:]] It matches any string containing a space.
[:cntrl:] It matches all control characters.
[:graph:] It matches all visible or printed characters other than spaces and control characters.
[:print:]It matches all printed characters and spaces other than control characters.
[:word:]It matches all word characters like digits, letters and underscore.
Quantifiers in Regular Expression: Quantifiers are special characters which tell the quantity, frequency or the number of instances or occurrence of bracketed character or group of characters. They are also called as greedy and lazy expressions. Let us look into some of the concepts and examples of quantifiers.
QuantifierMeaning
a+It matches the string containing at least one a.
a*It matches the string containing zero or more a's.
a?It matches any string containing zero or one a's.
a{x}It matches letter 'a' exaclty x times .
a{2, 3}It matches any string containing the occurrence of two or three a's.
a{2, }It matches any string containing the occurrence of at least two a's.
a{2}It matches any string containing the occurrence of exactly two a's.
a{, y}It matches any string containing the occurrence of not more than y number of a's.
a$It matches any string with 'a' at the end of it.
^aIt matches any string with 'a' at the beginning of it.
[^a-zA-Z]It matches any string pattern not having characters from a to z and A to Z.
a.aIt matches any string pattern containing a, then any character and then another a.
^.{3}$It matches any string having exactly three characters.
Note:
  • The $ character inside the expression will match the end of the target string.
  • The *, ?, + symbols in a regular expression denotes the frequency of occurrence of a character. If it occurs zero or more time, zero or one time and one or more times.
  • The ^ character inside the expression will match the beginning of the target string.
  • The . metacharacter matches any single character other than the newline.
Commonly known regular expression engines:
  • Regexp
  • RegexBuddy
Conclusion: A regular expression is a pattern that describes some string text in a particular pattern or it is defined as a pattern-matching algorithm expressed in a single line. Regular expressions are very useful in the programming world for validation checks and recognizing specific templates. PHP provides many in-built functions supporting regular expressions. Metacharacters helps in creating complex patterns.

Next Article
PHP Form Handling

G

geetanjali16
Improve
Article Tags :
  • Web Technologies
  • PHP
  • PHP-string

Similar Reads

    PHP Tutorial
    PHP is a widely used, open-source server-side scripting language primarily designed for web development. It is embedded directly into HTML and generates dynamic content on web pages, making it essential for building data-driven websites. It allows developers to handle database interactions, session
    9 min read
    PHP Introduction
    PHP stands for Hypertext Preprocessor. It is an open-source, widely used language for web development. Developers can create dynamic and interactive websites by embedding PHP code into HTML. PHP can handle data processing, session management, form handling, and database integration. The latest versi
    8 min read

    PHP Basics

    How to install PHP in Windows 10?
    PHP is a general-purpose scripting language geared towards web development. It is an open-source software (OSS), which is free to download and use. PHP stands for "Hypertext Preprocessor". PHP files are saved with an extension called .php. It supports many databases MySQL, Oracle, etc.Installation o
    2 min read
    How to Install PHP on Linux?
    PHP is a popular server-side scripting language that is especially used in web development. If you're working on a Linux environment, whether it's a personal development setup or a production server, you will likely need PHP installed. In this article, we will see the step-by-step guide to install P
    2 min read
    PHP Syntax
    PHP, a powerful server-side scripting language used in web development. It’s simplicity and ease of use makes it an ideal choice for beginners and experienced developers. This article provides an overview of PHP syntax. PHP scripts can be written anywhere in the document within PHP tags along with n
    4 min read
    How to write comments in PHP ?
    Comments are non-executable lines of text in the code that are ignored by the PHP interpreter. Comments are an essential part of any programming language. It help developers to understand the code, provide explanations, and make the codebase more maintainable. Types of Comments in PHPPHP supports tw
    1 min read
    PHP Variables
    A variable in PHP is a container used to store data such as numbers, strings, arrays, or objects. The value stored in a variable can be changed or updated during the execution of the script.All variable names start with a dollar sign ($).Variables can store different data types, like integers, strin
    5 min read
    PHP echo and print
    PHP echo and print are two most language constructs used for output data on the screen. They are not functions but constructs, meaning they do not require parentheses (though parentheses can be used with print). Both are widely used for displaying strings, variables, and HTML content in PHP scripts.
    4 min read
    PHP Data Types
    In PHP, data types define the kind of value a variable can hold. PHP is a loosely typed language, meaning you don’t need to declare the data type of a variable. It is automatically assigned based on the value. But it is important to understand data types because it is important for writing reliable,
    4 min read
    PHP Strings
    In PHP, strings are one of the most commonly used data types. A string is a sequence of characters used to represent text, such as words and sentences. Strings are enclosed in either single quotes (' ') or double quotes (" "). You can create a string using single quotes (' ') or double quotes (" ").
    4 min read

    PHP Array

    PHP Arrays
    Arrays are one of the most important data structures in PHP. They allow you to store multiple values in a single variable. PHP arrays can hold values of different types, such as strings, numbers, or even other arrays. Understanding how to use arrays in PHP is important for working with data efficien
    5 min read
    PHP Associative Arrays
    An associative array in PHP is a special array where each item has a name or label instead of just a number. Usually, arrays use numbers to find things. For example, the first item is at position 0, the second is 1, and so on. But in an associative array, we use words or names to find things. These
    4 min read
    Multidimensional arrays in PHP
    Multi-dimensional arrays in PHP are arrays that store other arrays as their elements. Each dimension adds complexity, requiring multiple indices to access elements. Common forms include two-dimensional arrays (like tables) and three-dimensional arrays, useful for organizing complex, structured data.
    5 min read
    Sorting Arrays in PHP
    Sorting arrays is one of the most common operation in programming, and PHP provides a several functions to handle array sorting. Sorting arrays in PHP can be done by values or keys, in ascending or descending order. PHP also allows you to create custom sorting functions.Table of ContentSort Array in
    4 min read

    PHP Constants

    PHP Constants
    A constant is a name or identifier used to store a fixed value that does not change during the execution of a PHP script. Unlike variables, constants do not start with a $ symbol and stay the same once they are defined.Constants are immutable (cannot be changed after definition).They are global by d
    3 min read
    PHP Constant Class
    The const keyword is used to declare a class constant. A constant is unchangeable once it is declared. The constant class declared inside the class definition. The class constant is case-sensitive. However, it is recommended to name the constants in all uppercase letters. Constant differ from normal
    2 min read
    PHP Defining Constants
    In a production-level code, it is very important to keep the information as either variables or constants rather than using them explicitly. A PHP constant is nothing but an identifier for a simple value that tends not to change over time(such as the domain name of a website eg. www.geeksforgeeks.or
    2 min read
    PHP | Magic Constants
    Magic constants in PHP are special built-in constants that provide information about the current state of the script, such as the file name, line number, function name, class name, and more. They always start and end with double underscores (__) and are automatically used in by PHP.Their values chan
    4 min read

    PHP Operators

    PHP Operators
    In PHP, operators are special symbols used to perform operations on variables and values. Operators help you perform a variety of tasks, such as mathematical calculations, string manipulations, logical comparisons, and more. Understanding operators is essential for writing effective and efficient PH
    8 min read
    PHP | Bitwise Operators
    The Bitwise operators is used to perform bit-level operations on the operands. The operators are first converted to bit-level and then calculation is performed on the operands. The mathematical operations such as addition , subtraction , multiplication etc. can be performed at bit-level for faster p
    5 min read
    PHP | Ternary Operator
    If-else and Switch cases are used to evaluate conditions and decide the flow of a program. The ternary operator is a shortcut operator used for shortening the conditional statements. ternary operator: The ternary operator (?:) is a conditional operator used to perform a simple comparison or check on
    3 min read

    PHP Control Statements

    PHP | Decision Making
    Decision-making is an important part of programming, allowing the program to execute different actions based on conditions. In PHP, decision-making helps control the flow of a program by executing different blocks of code depending on certain conditions or expressions. PHP provides several construct
    5 min read
    PHP switch Statement
    The switch statement is similar to the series of if-else statements. The switch statement performs in various cases i.e. it has various cases to which it matches the condition and appropriately executes a particular case block. It first evaluates an expression and then compares it with the values of
    2 min read
    PHP break (Single and Nested Loops)
    In PHP break is used to immediately terminate the loop and the program control resumes at the next statement following the loop. Method 1: Given an array the task is to run a loop and display all the values in array and terminate the loop when encounter 5. Examples: Input : array1 = array( 1, 2, 3,
    2 min read
    PHP continue Statement
    The continue statement is used within a loop structure to skip the loop iteration and continue execution at the beginning of condition execution. It is mainly used to skip the current iteration and check for the next condition. The continue accepts an optional numeric value that tells how many loops
    1 min read

    PHP Loops

    PHP Loops
    In PHP, Loops are used to repeat a block of code multiple times based on a given condition. PHP provides several types of loops to handle different scenarios, including while loops, for loops, do...while loops, and foreach loops. In this article, we will discuss the different types of loops in PHP,
    4 min read
    PHP while Loop
    The while loop is the simple loop that executes nested statements repeatedly while the expression value is true. The expression is checked every time at the beginning of the loop, and if the expression evaluates to true then the loop is executed otherwise loop is terminated. Flowchart of While Loop:
    1 min read
    PHP do-while Loop
    The do-while loop is very similar to the while loop, the only difference is that the do-while loop checks the expression (condition) at the end of each iteration. In a do-while loop, the loop is executed at least once when the given expression is "false". The first iteration of the loop is executed
    1 min read
    PHP for Loop
    The for loop is the most complex loop in PHP that is used when the user knows how many times the block needs to be executed. The for loop contains the initialization expression, test condition, and update expression (expression for increment or decrement). Flowchart of for Loop: Syntax: for (initial
    2 min read
    PHP foreach Loop
    The foreach loop in PHP is a powerful and convenient way to iterate over arrays and objects. The foreach loop though iterates over an array of elements, the execution is simplified and finishes the loop in less time comparatively. In this article, we will explore the foreach loop in detail, includin
    3 min read

    PHP Functions

    PHP | Functions
    A function in PHP is a self-contained block of code that performs a specific task. It can accept inputs (parameters), execute a set of statements, and optionally return a value. PHP functions allow code reusability by encapsulating a block of code to perform specific tasks.Functions can accept param
    8 min read
    PHP Arrow Functions
    PHP arrow functions are a shorthand syntax for anonymous functions. It was introduced in PHP 7.4, which provides a shorter way to write anonymous functions. They allow you to create functions with fewer lines of code while maintaining functionality. They provide an easy-to-read syntax, particularly
    5 min read
    Anonymous recursive function in PHP
    Anonymous recursive function is a type of recursion in which function does not explicitly call another function by name. This can be done either comprehensively, by using a higher order function passing in a function as an argument and calling that function. It can be done implicitly, via reflection
    2 min read

    PHP Advanced

    PHP Superglobals
    PHP superglobals are predefined variables that are globally available in all scopes. They are used to handle different types of data, such as input data, server data, session data, and more. These superglobal arrays allow developers to easily work with these global data structures without the need t
    6 min read
    HTTP GET and POST Methods in PHP
    In this article, we will know what HTTP GET and POST methods are in PHP, how to implement these HTTP methods & their usage, by understanding them through the examples. HTTP: The Hypertext Transfer Protocol (HTTP) is designed to enable communications between clients and servers. HTTP works as a r
    4 min read
    PHP | Regular Expressions
    Regular expressions commonly known as a regex (regexes) are a sequence of characters describing a special search pattern in the form of text string. They are basically used in programming world algorithms for matching some loosely defined patterns to achieve some relevant tasks. Some times regexes a
    12 min read
    PHP Form Handling
    Form handling is the process of collecting and processing information that users submit through HTML forms. In PHP, we use special tools called $_POST and $_GET to gather the data from the form. Which tool to use depends on how the form sends the data—either through the POST method (more secure, hid
    4 min read
    PHP Date and Time
    PHP provides functions to work with dates and times, allowing developers to display the current date/time, manipulate and format dates, and perform operations like date comparisons, time zone adjustments, and more.In this article, we'll discuss PHP date and time.Why are Date and Time Important in PH
    5 min read
    Describe PHP Include and Require
    In this article, we will see what include() & the require() functions is, also will know how these functions affect the execution of the code, their differences & usage in PHP, along with understanding their implementation through the examples. As we know PHP allows us to create various func
    3 min read
    PHP File Handling
    In PHP, File handling is the process of interacting with files on the server, such as reading files, writing to a file, creating new files, or deleting existing ones. File handling is essential for applications that require the storage and retrieval of data, such as logging systems, user-generated c
    4 min read
    PHP | Uploading File
    Have you ever wondered how websites build their system of file uploading in PHP? Here we will come to know about the file uploading process. A question which you can come up with - 'Are we able to upload any kind of file with this system?'. The answer is yes, we can upload files with different types
    3 min read
    PHP Cookies
    A cookie is a small text file that is stored in the user's browser. Cookies are used to store information that can be retrieved later, making them ideal for scenarios where you need to remember user preferences, such as:User login status (keeping users logged in between sessions)Language preferences
    9 min read
    PHP | Sessions
    A session in PHP is a mechanism that allows data to be stored and accessed across multiple pages on a website. When a user visits a website, PHP creates a unique session ID for that user. This session ID is then stored as a cookie in the user's browser (by default) or passed via the URL. The session
    7 min read
    PHP Callback Functions
    In PHP, the callback functions are related to the dynamic behavior and flexibility in code execution. They are used to pass custom logic or functions as arguments to other functions, letting developers change how a function behaves without changing its main structure. This makes the code more reusab
    5 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

'); // $('.spinner-loading-overlay').show(); let script = document.createElement('script'); script.src = 'https://assets.geeksforgeeks.org/v2/editor-prod/static/js/bundle.min.js'; script.defer = true document.head.appendChild(script); script.onload = function() { suggestionModalEditor() //to add editor in suggestion modal if(loginData && loginData.premiumConsent){ personalNoteEditor() //to load editor in personal note } } script.onerror = function() { if($('.editorError').length){ $('.editorError').remove(); } var messageDiv = $('
').text('Editor not loaded due to some issues'); $('#suggestion-section-textarea').append(messageDiv); $('.suggest-bottom-btn').hide(); $('.suggestion-section').hide(); editorLoaded = false; } }); //suggestion modal editor function suggestionModalEditor(){ // editor params const params = { data: undefined, plugins: ["BOLD", "ITALIC", "UNDERLINE", "PREBLOCK"], } // loading editor try { suggestEditorInstance = new GFGEditorWrapper("suggestion-section-textarea", params, { appNode: true }) suggestEditorInstance._createEditor("") $('.spinner-loading-overlay:eq(0)').remove(); editorLoaded = true; } catch (error) { $('.spinner-loading-overlay:eq(0)').remove(); editorLoaded = false; } } //personal note editor function personalNoteEditor(){ // editor params const params = { data: undefined, plugins: ["UNDO", "REDO", "BOLD", "ITALIC", "NUMBERED_LIST", "BULLET_LIST", "TEXTALIGNMENTDROPDOWN"], placeholderText: "Description to be......", } // loading editor try { let notesEditorInstance = new GFGEditorWrapper("pn-editor", params, { appNode: true }) notesEditorInstance._createEditor(loginData&&loginData.user_personal_note?loginData.user_personal_note:"") $('.spinner-loading-overlay:eq(0)').remove(); editorLoaded = true; } catch (error) { $('.spinner-loading-overlay:eq(0)').remove(); editorLoaded = false; } } var lockedCasesHtml = `You can suggest the changes for now and it will be under 'My Suggestions' Tab on Write.

You will be notified via email once the article is available for improvement. Thank you for your valuable feedback!`; var badgesRequiredHtml = `It seems that you do not meet the eligibility criteria to create improvements for this article, as only users who have earned specific badges are permitted to do so.

However, you can still create improvements through the Pick for Improvement section.`; jQuery('.improve-header-sec-child').on('click', function(){ jQuery('.improve-modal--overlay').hide(); $('.improve-modal--suggestion').hide(); jQuery('#suggestion-modal-alert').hide(); }); $('.suggest-change_wrapper, .locked-status--impove-modal .improve-bottom-btn').on('click',function(){ // when suggest changes option is clicked $('.ContentEditable__root').text(""); $('.suggest-bottom-btn').html("Suggest changes"); $('.thank-you-message').css("display","none"); $('.improve-modal--improvement').hide(); $('.improve-modal--suggestion').show(); $('#suggestion-section-textarea').show(); jQuery('#suggestion-modal-alert').hide(); if(suggestEditorInstance !== null){ suggestEditorInstance.setEditorValue(""); } $('.suggestion-section').css('display', 'block'); jQuery('.suggest-bottom-btn').css("display","block"); }); $('.create-improvement_wrapper').on('click',function(){ // when create improvement option clicked then improvement reason will be shown if(loginData && loginData.isLoggedIn) { $('body').append('
'); $('.spinner-loading-overlay').show(); jQuery.ajax({ url: writeApiUrl + 'create-improvement-post/?v=1', type: "POST", contentType: 'application/json; charset=utf-8', dataType: 'json', xhrFields: { withCredentials: true }, data: JSON.stringify({ gfg_id: post_id }), success:function(result) { $('.spinner-loading-overlay:eq(0)').remove(); $('.improve-modal--overlay').hide(); $('.unlocked-status--improve-modal-content').css("display","none"); $('.create-improvement-redirection-to-write').attr('href',writeUrl + 'improve-post/' + `${result.id}` + '/', '_blank'); $('.create-improvement-redirection-to-write')[0].click(); }, error:function(e) { showErrorMessage(e.responseJSON,e.status) }, }); } else { if(loginData && !loginData.isLoggedIn) { $('.improve-modal--overlay').hide(); if ($('.header-main__wrapper').find('.header-main__signup.login-modal-btn').length) { $('.header-main__wrapper').find('.header-main__signup.login-modal-btn').click(); } return; } } }); $('.left-arrow-icon_wrapper').on('click',function(){ if($('.improve-modal--suggestion').is(":visible")) $('.improve-modal--suggestion').hide(); else{ } $('.improve-modal--improvement').show(); }); const showErrorMessage = (result,statusCode) => { if(!result) return; $('.spinner-loading-overlay:eq(0)').remove(); if(statusCode == 403) { $('.improve-modal--improve-content.error-message').html(result.message); jQuery('.improve-modal--overlay').show(); jQuery('.improve-modal--improvement').show(); $('.locked-status--impove-modal').css("display","block"); $('.unlocked-status--improve-modal-content').css("display","none"); $('.improve-modal--improvement').attr("status","locked"); return; } } function suggestionCall() { var editorValue = suggestEditorInstance.getValue(); var suggest_val = $(".ContentEditable__root").find("[data-lexical-text='true']").map(function() { return $(this).text().trim(); }).get().join(' '); suggest_val = suggest_val.replace(/\s+/g, ' ').trim(); var array_String= suggest_val.split(" ") //array of words var gCaptchaToken = $("#g-recaptcha-response-suggestion-form").val(); var error_msg = false; if(suggest_val != "" && array_String.length >=4){ if(editorValue.length <= 2000){ var payload = { "gfg_post_id" : `${post_id}`, "suggestion" : `${editorValue}`, } if(!loginData || !loginData.isLoggedIn) // User is not logged in payload["g-recaptcha-token"] = gCaptchaToken jQuery.ajax({ type:'post', url: "https://apiwrite.geeksforgeeks.org/suggestions/auth/create/", xhrFields: { withCredentials: true }, crossDomain: true, contentType:'application/json', data: JSON.stringify(payload), success:function(data) { if(!loginData || !loginData.isLoggedIn) { grecaptcha.reset(); } jQuery('.spinner-loading-overlay:eq(0)').remove(); jQuery('.suggest-bottom-btn').css("display","none"); $('#suggestion-section-textarea').hide() $('.thank-you-message').css('display', 'flex'); $('.suggestion-section').css('display', 'none'); jQuery('#suggestion-modal-alert').hide(); }, error:function(data) { if(!loginData || !loginData.isLoggedIn) { grecaptcha.reset(); } jQuery('.spinner-loading-overlay:eq(0)').remove(); jQuery('#suggestion-modal-alert').html("Something went wrong."); jQuery('#suggestion-modal-alert').show(); error_msg = true; } }); } else{ jQuery('.spinner-loading-overlay:eq(0)').remove(); jQuery('#suggestion-modal-alert').html("Minimum 4 Words and Maximum Words limit is 1000."); jQuery('#suggestion-modal-alert').show(); jQuery('.ContentEditable__root').focus(); error_msg = true; } } else{ jQuery('.spinner-loading-overlay:eq(0)').remove(); jQuery('#suggestion-modal-alert').html("Enter atleast four words !"); jQuery('#suggestion-modal-alert').show(); jQuery('.ContentEditable__root').focus(); error_msg = true; } if(error_msg){ setTimeout(() => { jQuery('.ContentEditable__root').focus(); jQuery('#suggestion-modal-alert').hide(); }, 3000); } } document.querySelector('.suggest-bottom-btn').addEventListener('click', function(){ jQuery('body').append('
'); jQuery('.spinner-loading-overlay').show(); if(loginData && loginData.isLoggedIn) { suggestionCall(); return; } // script for grecaptcha loaded in loginmodal.html and call function to set the token setGoogleRecaptcha(); }); $('.improvement-bottom-btn.create-improvement-btn').click(function() { //create improvement button is clicked $('body').append('
'); $('.spinner-loading-overlay').show(); // send this option via create-improvement-post api jQuery.ajax({ url: writeApiUrl + 'create-improvement-post/?v=1', type: "POST", contentType: 'application/json; charset=utf-8', dataType: 'json', xhrFields: { withCredentials: true }, data: JSON.stringify({ gfg_id: post_id }), success:function(result) { $('.spinner-loading-overlay:eq(0)').remove(); $('.improve-modal--overlay').hide(); $('.create-improvement-redirection-to-write').attr('href',writeUrl + 'improve-post/' + `${result.id}` + '/', '_blank'); $('.create-improvement-redirection-to-write')[0].click(); }, error:function(e) { showErrorMessage(e.responseJSON,e.status); }, }); });
"For an ad-free experience and exclusive features, subscribe to our Premium Plan!"
Continue without supporting
`; $('body').append(adBlockerModal); $('body').addClass('body-for-ad-blocker'); const modal = document.getElementById("adBlockerModal"); modal.style.display = "block"; } function handleAdBlockerClick(type){ if(type == 'disabled'){ window.location.reload(); } else if(type == 'info'){ document.getElementById("ad-blocker-div").style.display = "none"; document.getElementById("ad-blocker-info-div").style.display = "flex"; handleAdBlockerIconClick(0); } } var lastSelected= null; //Mapping of name and video URL with the index. const adBlockerVideoMap = [ ['Ad Block Plus','https://media.geeksforgeeks.org/auth-dashboard-uploads/abp-blocker-min.mp4'], ['Ad Block','https://media.geeksforgeeks.org/auth-dashboard-uploads/Ad-block-min.mp4'], ['uBlock Origin','https://media.geeksforgeeks.org/auth-dashboard-uploads/ub-blocke-min.mp4'], ['uBlock','https://media.geeksforgeeks.org/auth-dashboard-uploads/U-blocker-min.mp4'], ] function handleAdBlockerIconClick(currSelected){ const videocontainer = document.getElementById('ad-blocker-info-div-gif'); const videosource = document.getElementById('ad-blocker-info-div-gif-src'); if(lastSelected != null){ document.getElementById("ad-blocker-info-div-icons-"+lastSelected).style.backgroundColor = "white"; document.getElementById("ad-blocker-info-div-icons-"+lastSelected).style.borderColor = "#D6D6D6"; } document.getElementById("ad-blocker-info-div-icons-"+currSelected).style.backgroundColor = "#D9D9D9"; document.getElementById("ad-blocker-info-div-icons-"+currSelected).style.borderColor = "#848484"; document.getElementById('ad-blocker-info-div-name-span').innerHTML = adBlockerVideoMap[currSelected][0] videocontainer.pause(); videosource.setAttribute('src', adBlockerVideoMap[currSelected][1]); videocontainer.load(); videocontainer.play(); lastSelected = currSelected; }

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences