Only4programmers site only for web development and stand alone program learners its very use full to see the code for both web and windows applications.
Speeding up your website is one of the many topics that you are interested in, especially for newbies coming to the WordPress website. Because of this, apart from helping the user to have the best experience, it also affects SEO.
1. Select good hosting/server.
To make a professional website, without that much technical requirements, WordPress is an option almost absolute for everyone. You will need to prepare a fee to buy a domain and hosting to help make things more professional and kind.
So, from the beginning, you should determine that if you make a professional website then invest a bit for this. There are many discount coupons from the prestigious hosting providers such as LiquidWeb, Turnkey Internet, Hosting24, ...
Choose a shared host if you are new. If you're new to web hosting, the shared host with Cpanel manager will be your choice, as it's easy to use and lots of tutorials on the net.
You should choose where the server is located near traffic source. For example, if you make a website for Chinese visitors, the server located in Hong Kong, Singapore or Tokyo will be better.
In addition, you should consider other configurations of hosting, such as server storage, RAM, CPU, etc.
Switch to VPS if needed You make the site long time, know how to develop the site and have more and more traffic, the investment for a better server site with smooth speed, fast is essential.
You do good website traffic, every day several hundred to one thousand visitors don't worry that investing $10 - $20/month for the server smoothly for the site is expensive.
Currently, there are VPS Server vendors are very good and popular such as Vultr, DigitalOcean, Linode,... 2. Use optimized themes for WordPress
There are currently two themes vendors that you recommend that you use: Genesis (including the Genesis Framework and Child Theme), and Mythemeshop.
The 2 themes that I mentioned above are very easy to use for newbies. In particular, if to optimize speed for WordPress website, rank 1 still belongs to Genesis
3. Do not greedy install rampant plugins!
During the making of the website, you see what people install, then you also want install, with no consideration of whether the plugin is really necessary or not. Lead to the situation when a simple website that nearly 20-30 plugins slow server is inevitable.
4. Use excerpt/collapse.
If you do not customize anything then default WordPress will display the entire article content + images in the article to the home page and Archives Page. This will cause your Homepage, Page Tags, Page Categories, and other archives to load very slowly and significantly reduce the user experience on your site.
5. Don't upload music or video directly to the host.
In order for your post to have videos that you want readers to see, you can upload them directly to the website through Add Media and it will be displayed. But: Why do you upload to a host when there are so many other music and video storage, such as Youtube, Vimeo, ...?
6. Cache plugins.
Use caching to accelerate the page load speed for your website. It works by saving the cache to people who have visited your site, thus speeding up the page load for your subsequent visits more quickly.
The recommended Cache plugins are:
W3 Total Cache
WP Rocket.
7. Optimize the image properly.
If you are uploading large images directly to the article, it will be easy to downtime host, when users visit, the page load speed will be very long and affect the experience. This case is a lot of you encounter because almost new people are taking the image found on the Internet and inserted into the article without regard to the image is heavy
In the previous article, I presented some concepts about HTTPS. In this article, let's see if HTTPS is safe. Is HTTPS Really Secure? In many cases, HTTPS with the blue sign on the address bar is a sign that what we're doing will be secured. But is it secure enough? My personal opinion is not yet. HTTPS is just like you get out and lock your door. Actually, lock the door is not avoid the crooks. If someone has tried to break into your home to steal, then lock the door is useless. HTTPS is probably the same.
With server and Web app
HTTPS is a secure mechanism for transactions between users and servers. It can be said, for Web servers as well as Web applications, it has no effect in server and application security.
Application security requires a great deal of complexity, including DDoS attack, anti-XSS, CSRF, etc.
With the user
So what about the users? Does HTTPS help users encrypt data, authenticate the server or not? The answer is that there are still a lot of ways to circumvent HTTPS. There are still many different methods to break the certificate authentication system:
Break into CA's system. As we all know, there are hundreds of CAs trusted by the browser. Attackers only need to find one of these CAs capable of intrusion is enough. And in fact, this has happened with terrible consequences.
Breaks routers near CA or near the victim reads and falsifies incoming and outgoing DNS packets, attacks email exchanges between the victim and CA. Email encryption methods do not help in this case because STARTTLS can completely break down.
Breaks the DNS servers are used with the CA or forged DNS packets with the victim domain. Sometimes it is quite easy.
Attacks several other network protocols, such as TCP, to attack the victim's packets.
Some CAs may be required by the local government to provide a malicious certificate as they have been accused. Because the CA is present in many different countries, many governments may seek to ask the CA to do so.
The above is the problem of external systems that our data can still be stolen, although HTTPS still works well. But even HTTPS itself has certain issues. For example the Heartbleed hole (heart bleeding). This vulnerability is likely to expose content contained in server memory, allowing an attacker to copy the keys. They easily decrypt the exchanged information.
And even the root certificate authentication mechanism is not completely secure. Take a look at the Man in the Middle attack:
For example, you need to go to https://www.gmail.com, but someone interferes with the exchange process between you and the server. And you are confident that, with certified certificates, you can rest assured that your secure
But you are wrong.
What really can happen is very different from your imagination:
What really can happen is very different from your imagination:
You connect to https://www.gmail.com
The attacker redirects your query to the server he has prepared.
Because this server contains perfectly valid SSL certificate, your browser will not know you've connected the wrong server.
You manipulate the fake server, all data will be read by the attacker, he can change it, and send it to the real Gmail server.
You are completely unaware that your secure connection is completely insecure.
Why can an attacker obtain a valid SSL certificate? The attacker can take advantage of the root certificate (which is built into the browser) to generate SSL certificates for his website
In short, there are many different ways to crack HTTPS.
Web security protocols can be good enough to protect against attackers, without much time and energy. But it is still too small in a world where technology and methods of attack are growing.
Conclusion
HTTPS really only has acceptable security. If you want to be really safe on the Internet, we need more than that. HTTPS is like you are out of the house locking the door, most of us are still satisfied with the situation, but still many people are not sure and have to lock a few more layers, buy more safes to store important furniture.
HTTPS, or also known as Secure HTTP or HTTP over SSL, HTTP over TLS is a protocol that is considered more secure protocol than regular HTTP Web. It's called "security" but is it really enough security as we thought, or not? In this article, we will learn more about HTTPS and how its security is.
Why do we need HTTPS? Currently, Google has added the criteria to evaluate HTTPS Web pages. However, it's not always we need HTTPS. We just need them when need secure information only.
Why do we secure information?
During the war, a lot of military information, intelligence information only for some people, others, especially the enemy mustn't know. However, for various reasons, the transmission of information isn't sent directly from the sender to the recipient, but through a certain number of intermediaries. So that the information is easily leaked. For example, the method of communication by telegraph easily captured and eavesdropping
So, people use many different methods to encode to send the information, to ensure that, except for people who need to receive, others hear but don't understand. If you ever see the movie Windtalkers, then you can understand the importance of encryption in war.
Similarly, on the Internet today there are many types of attacks such eavesdropping. One common form is called eavesdrop, in addition to a more powerful type of attack known as Man in the Middle (MITM). However, the contents of this article will not go into details of that attack, maybe I'll come back in the next article. What I want to say here is what we do on the Internet is never literally privacy at all.
Big Brother is watching you
The Internet is a lot of computer connections, a packet from the sender before the recipient will have to go through a lot of different intermediate machine. No one can prevent those who seek to tamper with our packet along the way. Even the mechanism of the Internet allows eavesdropping takes place very easily. If you don't believe, you can install Wireshark try and see how the network you are using with the bustling activity like.
What we do on the Internet has a lot of things other people know it doesn't matter. But there are many things we do not want anyone to know. And a very justifiable needs of humans is hiding something could be called "secrets" that from the prying eyes of those around him. Because snooping packets is took place very ordinarily, so we need encryption methods to ensure that the packet that we sent just us and the recipients understand. All those who snooping on the road though read nor understand anything.
That's why we need HTTPS Web, HTTPS encryption will help us to process transactions on the Web server and browser. Additionally, HTTPS has some other effects, such as authenticate servers (avoid phishing), etc ... How does HTTPS secure transaction?
When the browser access Web pages use HTTPS, the browser, and server to establish an SSL connection using SSL Handshake Protocol. The process of establishing a connection is completely seamlessly with users, ordinary users don't need to care about it.
To establish an SSL connection, there are 3 keys used: public key, private key and the session key. Public and private keys form a pair: everything needs to be encrypted using public key encryption and decryption with private key. Session key is the key used in the symmetric encryption method, it is used for both the encryption and decryption.
If you don't fully understand the methods of public key encryption and symmetric code, maybe you should find out about them before we continue.
Using public key encryption is costly, it is only used at the time to establish a connection, after the connection is established, symmetric encryption is used (with the session key lock). The entire process takes place as follows:
The browser connects to the server using HTTPS.
The server returns an SSL certificate, which contains the public key used to encrypt.
The browser checks the certificate (this process we will learn in the next section). If everything is OK, session key randomly generated and sent to the server (the data is encrypted using the public key).
The server decrypts using private key obtained session key packet, send feedback received a key to the browser.
From here onwards, the server and the browser to send and receive packets are encrypted with session key.
SSL certificate
SSL is certificate used to establish a connection between the browser and the server. Technically SSL certificate files are relatively small in size, including information about the public key stored along with other information on the organization's Web site owners.
Some information is stored in the SSL certificate:
Certificate Authority (CA) can confirm that the certificate is genuine, they will use electronic signatures with their own private key. CA will act as notaries have been granted a license, their signatures are trusted and certified their certificate can be considered valid.
Often, CA will sell certificate and they will confirm that they granted the paperwork. So often we have to buy SSL certificate with a very high price tag. In fact, the value of the SSL certificate itself not only in the certificate, which includes the small part of the seller price brands.
Actually, the signature of the CA will also need to be authenticated. Like we check the signature of the notary so. The CA certificate will be certified by the higher-level CA, and the process is a recursive process as follows:
Each certificate shall be certified by the higher certificate level, and the highest level is called Root CA certificate. Root CA certificate is an SSL certificate, but it is used for authentication and electronic signature attached to the certificates are sold to commercial users. The root certificate is usually pre-installed on the browser and the browser receives the certificate from certain websites, it will use root certificate to check the certificate received is valid or not.
Through the authentication process, when using HTTPS, we aren't simply encoding the information, but we also get the authentication and is working with the person that we want.
Because the process of authentication, encryption, and decryption are complex as above, so HTTPS is time-consuming to process than HTTP. In many cases, HTTPS isn't necessary, many large e-news such as CNN, the BBC don't use HTTPS for their web sites, simply because it is the news page, no sensitive information. So the quick response is more important.
It's quite a long article so I will separate it into 2 parts. In next article, we will figure out whether HTTPS is secure or not!
Microsoft VBScript (Visual Basic Script) is a general-purpose, lightweight and active scripting language developed by Microsoft that is modelled on Visual Basic. Nowadays, VBScript is the primary scripting language for Quick Test Professional (QTP), which is a test automation tool.
This tutorial will teach you how to use VbScript scripting language in your day-2-day life of any Web based or Automation project development.
VBScript - Overview
VBScript stands for Visual Basic Scripting that forms a subset of Visual Basic for Applications (VBA).
VBA is a product of Microsoft which is included NOT only in other Microsoft products such as MS Project and MS Office but also in Third Party tools such as AUTO CAD.
Features of VBScript
VBScript is a lightweight scripting language, which has a lightning fast interpreter.
VBScript, for the most part, is case insensitive. It has a very simple syntax, easy to learn and to implement.
Unlike C++ or Java, VBScript is an object-based scripting language and NOT an Object-Oriented Programming language.
It uses Component Object Model (COM) in order to access the elements of the environment in which it is executing.
Successful execution of VBScript can happen only if it is executed in Host Environment such as Internet Explorer (IE), Internet Information Services (IIS) and Windows Scripting Host (WSH)
VBscript – Version History and Uses
VBScript was introduced by Microsoft way back in 1996 and the first version was 1.0. The Current Stable version of VBScript is 5.8, which is available as part of IE8 or Windows 7.
The VBScript usage areas are aplenty and not restricted to the below list.
VBScript is used as a scripting language in one of the popular Automation testing tools – Quick Test Professional abbreviated as QTP
Windows Scripting Host, which is used mostly by Windows System administrators for automating the Windows Desktop.
Active Server Pages (ASP), a server side scripting environment for creating dynamic webpages which uses VBScript or Java Script.
VBScript is used for Client side scripting in Microsoft Internet Explorer.
Microsoft Outlook Forms usually runs on VBScript; however, the application level programming relies on VBA (Outlook 2000 onwards).
Disadvantages
VBscript is used only by IE Browsers. Other browsers such as Chrome, Firefox DONOT Support VBScript. Hence, JavaScript is preferred over VBScript.
VBScript has a Limited command line support.
Since there is no development environment available by default, debugging is difficult.
Where VBScript is Today ?
The current version of VBScript is 5.8, and with the recent development of .NET framework, Microsoft has decided to provide future support of VBScript within ASP.NET for web development.
Hence, there will NOT be any more new versions of VBScript engine but the entire defect fixes and security issues are being addressed by the Microsoft sustaining Engineering Team.
However, VBScript engine would be shipped as part of all Microsoft Windows and IIS by default.
VBScript - Syntax
Your First VBScript
Let us write a VBScript to print out "Hello World".
In the above example, we called a function document.write, which writes a string into the HTML document. This function can be used to write text, HTML or both. So, above code will display following result:
HelloWorld!
Whitespace and Line Breaks
VBScript ignores spaces, tabs and newlines that appear within VBScript programs.
Because one can use spaces, tabs and newlines freely within the program so you are free to format and indent your programs in a neat and consistent way that makes the code easy to read and understand.
Formatting
VBScript is based on Microsoft's Visual Basic. Unlike JavaScript, no statement terminators such as semicolon is used to terminate a particular statement.
Single Line Syntax
Colons are used when two or more lines of VBScript ought to be written in a single line. Hence, in VBScript, Colons act as a line separator.
When a statement in VBScript is lengthy and if user wishes to break it into multiple lines, then the user has to use underscore "_".
This improves the readability of the code. The following example illustrates how to work with multiple lines.
<scriptlanguage="vbscript"type="text/vbscript">
var1 =10
var2 =20Sum= var1 + var2
document.write("The Sum of two numbers"&_
"var1 and var2 is "&Sum)</script>
Reserved Words
The following list shows the reserved words in VBscripting. These reserved words SHOULD NOT be used as a constant or variable or any other identifier names.
Loop
LSet
Me
Mod
New
Next
Not
Nothing
Null
On
Option
Optional
Or
ParamArray
Preserve
Private
Public
RaiseEvent
ReDim
Rem
Resume
RSet
Select
Set
Shared
Single
Static
Stop
Sub
Then
To
True
Type
And
As
Boolean
ByRef
Byte
ByVal
Call
Case
Class
Const
Currency
Debug
Dim
Do
Double
Each
Else
ElseIf
Empty
End
EndIf
Enum
Eqv
Event
Exit
False
For
Function
Get
GoTo
If
Imp
Implements
In
Integer
Is
Let
Like
Long
TypeOf
Until
Variant
Wend
While
With
Xor
Eval
Execute
Msgbox
Erase
ExecuteGlobal
Option Explicit
Randomize
SendKeys
Case Sensitivity
VBScript is a case-insensitive language. This means that language keywords, variables, function names and any other identifiers need NOT be typed with a consistent capitalization of letters.
So identifiers int_counter, INT_Counter and INT_COUNTER have the same meaning within VBScript.
Comments in VBScript
Comments are used to document the program logic and the user information with which other programmers can seamlessly work on the same code in future.
It can include information such as developed by, modified by and it can also include incorporated logic. Comments are ignored by the interpreter while execution.
Comments in VBScript are denoted by two methods.
1. Any statement that starts with a Single Quote (‘) is treated as comment. Following is the example:
<scriptlanguage="vbscript"type="text/vbscript"><!—'ThisScript is invoked after successful login
'Written by :Only4prorammers'ReturnValue:True/False//- ></script>
2. Any statement that starts with the keyword “REM”. Following is the example:
<scriptlanguage="vbscript"type="text/vbscript"><!—
REM ThisScript is written to Validate the EnteredInput
REM Modified by :Only4prorammers/user2//- ></script>
Enabling VBScript in Browsers
NOT All the modern browsers support VBScript. VBScript is supported just by Microsoft's Internet Explorer while other browsers(Firefox and Chrome) just support JavaScript. Hence, the developers prefer JavaScript over VBScript.
Though Internet Explorer (IE) supports VBScript, many a times you may need to enable or disable this feature manually. This tutorial will make you aware of the procedure of enabling and disabling VBScript support in Internet Explorer.
VBScript in Internet Explorer
Here are simple steps to turn on or turn off VBScript in your Internet Explorer:
Follow Tools-> Internet Options from the menu
Select Security tab from the dialog box
Click the Custom Level button
Scroll down till you find Scripting option
Select Enable radio button under Active scripting
Finally click OK and come out
To disable VBScript support in your Internet Explorer, you need to select Disable radio button under Active scripting.
VBScript - Placements
VBScript Placement in HTML File
There is a flexibility given to include VBScript code anywhere in an HTML document. But the most preferred way to include VBScript in your HTML file is as follows:
Script in <head>...</head> section.
Script in <body>...</body> section.
Script in <body>...</body> and <head>...</head> sections.
Script in an external file and then include in <head>...</head> section.
In the following section, we will see how we can put VBScript in different ways:
VBScript in <head>...</head> section:
If you want to have a script run on some event, such as when a user clicks somewhere, then you will place that script in the head as follows:
This will produce the following result: A button with the name SayHello. Upon clicking on the Button, the message box is displayed to the user with the message "Hello World".
VBScript in <body>...</body> section:
If you need a script to run as the page loads so that the script generates content in the page, the script goes in the <body> portion of the document. In this case, you would not have any function defined using VBScript:
<html><head></head><body><scripttype="text/vbscript"><!--
document.write("Hello World")//--></script><p>This is web page body </p></body></html>
This will produce the following result:
HelloWorldThisis web page body
VBScript in <body> and <head> sections:
You can put your VBcript code in <head> and <body> section altogether as follows:
This will produce the following result: Hello World message with a 'Say Hello' button. Upon Clicking on the button a message box with a message "Hellow World" is displayed to the user.
HelloWorld
VBScript in External File:
As you begin to work more extensively with VBScript, you will likely find that there are cases, where you are reusing identical VBScript code on multiple pages of a site.
You are not restricted to be maintaining identical code in multiple HTML files. The script tag provides a mechanism to allow you to store VBScript in an external file and then include it into your HTML files.
Here is an example to show how you can include an external VBScript file in your HTML code using script tag and its src attribute:
To use VBScript from an external file source, you need to write your all VBScript source code in a simple text file with extension ".vbs" and then include that file as shown above.
For example, you can keep following content in filename.vbs file and then you can use sayHello function in your HTML file after including filename.vbs file.
Function sayHello()Msgbox"Hello World"EndFunction
VBScript Placement in QTP
VBScript is placed in QTP(Quick Test Professional) tool but it is NOT enclosed within HTML Tags. The Script File is saved with the extension .vbs and it is executed by Quick Test Professional execution engine.
VBScript - Variables
VBScript Variables
Variable is a named memory location used to hold a value that can be changed during the script execution. VBScript has only ONE fundamental data type, Variant.
Rules for Declaring Variables:
Variable Name must begin with an alphabet.
Variable names cannot exceed 255 characters.
Variables Should NOT contain a period(.)
Variable Names should be unique in the declared context.
Declaring Variables
Variables are declared using “dim” keyword. Since there is only ONE fundamental data type, all the declared variables are variant by default. Hence, a user NEED NOT mention the type of data during declaration.
Example 1: In this Example, IntValue can be used as a String, Integer or even arrays.
DimVar
Example 2: Two or more declarations are separated by comma(,)
DimVariable1,Variable2
Assigning Values to the Variables
Values are assigned similar to an algebraic expression. The variable name on the left hand side followed by an equal to (=) symbol and then its value on the right hand side.
Rules:
The numeric values should be declared without double quotes.
The String values should be enclosed within doublequotes(")
Date and Time variables should be enclosed within hash symbol(#)
Examples:
' Below Example, The value 25 is assigned to the variable.
Value1 = 25
' A StringValue‘VBScript’is assigned to the variable StrValue.StrValue=“VBScript”' The date 01/01/2020 is assigned to the variable DToday.
Date1 = #01/01/2020#
' A SpecificTimeStampis assigned to a variable in the below example.Time1=#12:30:44 PM#
Scope of the Variables
Variables can be declared using the following statements that determines the scope of the variable. The scope of the variable plays a crucial role when used within a procedure or classes.
Dim
Public
Private
Dim
Variables declared using “Dim” keyword at a Procedure level are available only within the same procedure. Variables declared using “Dim” Keyword at script level are available to all the procedures within the same script.
Example : In the below example, the value of Var1 and Var2 are declared at script level while Var3 is declared at procedure level.
Note : The scope of this chapter is to understand Variables. Functions would be dealt in detail in the upcoming chapters.
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">DimVar1DimVar2Call add()Function add()Var1=10Var2=15DimVar3Var3=Var1+Var2MsgboxVar3'Displays25, the sum of two values.EndFunctionMsgboxVar1'Displays10 as Var1 is declared at Script level
MsgboxVar2'Displays15 as Var2 is declared at Script level
MsgboxVar3'Var3 has NoScope outside the procedure.PrintsEmpty</script></body></html>
Public
Variables declared using "Public" Keyword are available to all the procedures across all the associated scripts. When declaring a variable of type "public", Dim keyword is replaced by "Public".
Example : In the below example, Var1 and Var2 are available at script level while Var3 is available across the associated scripts and procedures as it is declared as Public.
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">DimVar1DimVar2PublicVar3Call add()Function add()Var1=10Var2=15Var3=Var1+Var2MsgboxVar3'Displays25, the sum of two values.EndFunctionMsgboxVar1'Displays10 as Var1 is declared at Script level
MsgboxVar2'Displays15 as Var2 is declared at Script level
MsgboxVar3'Displays25 as Var3 is declared as Public</script></body></html>
Private
Variables that are declared as "Private" have scope only within that script in which they are declared. When declaring a variable of type "Private", Dim keyword is replaced by "Private".
Example : In the below example, Var1 and Var2 are available at Script Level. Var3 is declared as Private and it is available only for this particular script. Use of "Private" Variables is more pronounced within the Class.
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">DimVar1DimVar2PrivateVar3Call add()Function add()Var1=10Var2=15Var3=Var1+Var2MsgboxVar3'Displays the sum of two values.EndFunctionMsgboxVar1'Displays10 as Var1 is declared at Script level
MsgboxVar2'Displays15 as Var2 is declared at Script level
MsgboxVar3'Displays25 but Var3 is available only forthis script.</script></body></html>
VBScript - Constants
Constant is a named memory location used to hold a value that CANNOT be changed during the script execution. If a user tries to change a Constant Value, the Script execution ends up with an error. Constants are declared the same way the variables are declared.
Declaring Constants
Syntax:
[Public|Private]ConstConstant_Name=Value
The Constant can be of type Public or Private. The Use of Public or Private is Optional. The Public constants are available for all the scripts and procedures while the Private Constants are available within the procedure or Class. One can assign any value such as number, String or Date to the declared Constant.
Example 1:
In this example, the value of pi is 3.4 and it displays the area of the circle in a message box.
In the below example, the user tries to change the Constant Value; hence, it will end up with an Execution Error.
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">Dim intRadius
intRadius =20const pi=3.14
pi = pi*pi 'pi VALUE CANNOT BE CHANGED.THROWS ERROR'Area= pi*intRadius*intRadius
MsgboxArea</script></body></html>
VBScript - Operators
What is an operator?
Simple answer can be given using expression 4 + 5 is equal to 9. Here, 4 and 5 are called operands and + is called operator. VBScript language supports following types of operators:
Arithmetic Operators
Comparison Operators
Logical (or Relational) Operators
Concatenation Operators
The Arithmetic Operators
There are following arithmetic operators supported by VBScript language:
Assume variable A holds 5 and variable B holds 10, then:
Assume variable A="Microsoft" and variable B="VBScript", then:
Operator
Description
Example
+
Concatenates two Values
A + B will give MicrosoftVBScript
&
Concatenates two Values
A & B will give MicrosoftVBScript
Note: Concatenation Operators can be used for numbers and strings. The Output depends on the context if the variables hold numeric value or String Value.
To understand these Operators in a better way, you can Try it yourself.
VBScript - Decision Making
Decision making allows programmers to control the execution flow of a script or one of its sections. The execution is governed by one or more conditional statements.
Following is the general form of a typical decision making structure found in most of the programming languages:
VBScript provides following types of decision making statements. Click the following links to check their details.
An if else statement consists of a boolean expression followed by one or more statements. If the condition is True, the statements under If statements are executed. If the condition is false, Else part of the script is Executed
An if statement followed by one or more ElseIf Statements, that consists of boolean expressions and then followed by an optional else statement, which executes when all the condition becomes false.
A switch statement allows a variable to be tested for equality against a list of values.
VBScript - Loops
There may be a situation when you need to execute a block of code several number of times. In general, statements are executed sequentially: The first statement in a function is executed first, followed by the second, and so on.
Programming languages provide various control structures that allow for more complicated execution paths.
A loop statement allows us to execute a statement or group of statements multiple times and following is the general from of a loop statement in VBScript.
VBScript provides the following types of loops to handle looping requirements. Click the following links to check their detail.
The do..Until statements will be executed as long as condition is False.(i.e.,) The Loop should be repeated till the condition is True.
Loop Control Statements
Loop control statements change execution from its normal sequence. When execution leaves a scope, all the remaining statements in the loop are NOT executed.
VBScript supports the following control statements. Click the following links to check their detail.
Terminates the Do While statement and transfers execution to the statement immediately following the loop
VBScript - Events
What is an Event ?
VBScript's interaction with HTML is handled through events that occur when the user or browser manipulates a page.
When the page loads, that is an event. When the user clicks a button, that click too is an event. Another example of events are like pressing any key, closing window, resizing window, etc.
Developers can use these events to execute VBScript coded responses, which cause buttons to close windows, messages to be displayed to users, data to be validated and virtually any other type of response imaginable to occur.
Events are a part of the Document Object Model (DOM) and every HTML element has a certain set of events, which can trigger VBScript Code. Please go through this small tutorial for a better understanding HTML Event Reference. Here, we will see few examples to understand a relation between Event and VBScript.
onclick Event Type
This is the most frequently used event type, which occurs when a user clicks mouse's left button. You can put your validation, warning, etc., against this event type.
This will produce the following result, and when you click Hello button, then onclick event will occur which will trigger sayHello() function.
onsubmit event type
Another most important event type is onsubmit. This event occurs when you try to submit a form. So you can put your form validation against this event type.
The Form is submitted by clicking on Submit button, the message box appears.
These two event types will help you to create nice effects with images or even with text as well. The onmouseover event occurs when you bring your mouse over any element and the onmouseout occurs when you take your mouse out from that element.
Example
<html><head></head><body><scriptlanguage="VBScript">FunctionAlertMsgMsgbox("ALERT !")EndFunctionFunction onmourse_over()Msgbox("Onmouse Over")EndFunctionSub txt2_OnMouseOut()Msgbox("Onmouse Out !!!")EndSubSub btnButton_OnMouseOut()Msgbox("onmouse out on Button !")EndSub</script><formaction="page.cgi"method="post"name="form1"><inputname="txt1"type="text"OnMouseOut="AlertMsg()"><br><inputname="txt2"type="text"OnMouseOver="onmourse_over()"><br><inputname="btnButton"type="button"value="Submit"></form></body></html>
This will produce a result when you hover the mouse over the text box and also when you move the focus away from the text box and the button.
HTML 4 Standard Events
The standard HTML 4 events are listed here for your reference. Here, script indicates a VBscript function to be executed against that event.
Event
Value
Description
onchange
script
Script runs when the element changes
onsubmit
script
Script runs when the form is submitted
onreset
script
Script runs when the form is reset
onblur
script
Script runs when the element loses focus
onfocus
script
Script runs when the element gets focus
onkeydown
script
Script runs when key is pressed
onkeypress
script
Script runs when key is pressed and released
onkeyup
script
Script runs when key is released
onclick
script
Script runs when a mouse click
ondblclick
script
Script runs when a mouse double-click
onmousedown
script
Script runs when mouse button is pressed
onmousemove
script
Script runs when mouse pointer moves
onmouseout
script
Script runs when mouse pointer moves out of an element
onmouseover
script
Script runs when mouse pointer moves over an element
onmouseup
script
Script runs when mouse button is released
VBScript and Cookies
What are Cookies?
Web Browser and Server use HTTP protocol to communicate and HTTP is a stateless protocol. But for a commercial website, it is required to maintain session information among different pages. For example, one user registration ends after completing many pages. But how to maintain user's session information across all the web pages.
In many situations, using cookies is the most efficient method of remembering and tracking preferences, purchases, commissions and other information required for better visitor experience or site statistics.
How It Works?
Your server sends some data to the visitor's browser in the form of a cookie. The browser may accept the cookie. If it does, it is stored as a plain text record on the visitor's hard drive. Now, when the visitor arrives at another page on your site, the browser sends the same cookie to the server for retrieval. Once retrieved, your server knows/remembers what was stored earlier.
Cookies are a plain text data record of 5 variable-length fields:
Expires : The date the cookie will expire. If this is blank, the cookie will expire when the visitor quits the browser.
Domain : The domain name of your site.
Path : The path to the directory or web page that set the cookie. This may be blank if you want to retrieve the cookie from any directory or page.
Secure : If this field contains the word "secure", then the cookie may only be retrieved with a secure server. If this field is blank, no such restriction exists.
Name=Value : Cookies are set and retrieved in the form of key and value pairs.
Cookies were originally designed for CGI programming and cookies' data is automatically transmitted between the web browser and web server, so CGI scripts on the server can read and write cookie values that are stored on the client.
VBScript can also manipulate cookies using the cookie property of the Document object. VBScript can read, create, modify and delete the cookie or cookies that apply to the current web page.
Storing Cookies
The simplest way to create a cookie is to assign a string value to the document.cookie object, which looks like this:
Here expires attribute is optional. If you provide this attribute with a valid date or time, then cookie will expire at the given date or time and after that cookies' value will not be accessible.
Example
Following is the example to set a customer name in input cookie.
<html><head><scripttype="text/vbscript">FunctionWriteCookieIf document.myform.customer.value=""Then
msgbox "Enter some value!"Else
cookievalue=(document.myform.customer.value)
document.cookie="name="+ cookievalue
msgbox "Setting Cookies : "&"name="& cookievalue
EndIfEndFunction</script></head><body><formname="myform"action="">
Enter name: <inputtype="text"name="customer"/><inputtype="button"value="Set Cookie"onclick="WriteCookie()"/></form></body></html>
This will produce the following result. Now enter something in the text box and press the button "Set Cookie" to set the cookies.
Now, your system has a cookie called name. You can set multiple cookies using multiple key=value pairs separated by comma.
You will learn how to read this cookie in next section.
Reading Cookies
Reading a cookie is just as simple as writing one, because the value of the document.cookie object is the cookie. So, you can use this string whenever you want to access the cookie.
The document.cookie string will keep a list of name=value pairs separated by semicolons where name is the name of a cookie and value is its string value.
You can use strings' split() function to break the string into key and values as follows:
Example
Following is the example to get the cookies set in previous section:
<html><head><scripttype="text/vbscript">FunctionReadCookie
allcookies = document.cookie
msgbox "All Cookies : "+ allcookies
cookiearray = split(allcookies,";")For i=0 to ubound(cookiearray)Name=Split(cookiearray(i),"=")Msgbox"Key is : "+Name(0)+" and Value is : "+Name(1)NextEndFunction</script></head><body><formname="myform"action=""><inputtype="button"value="Get Cookie"onclick="ReadCookie()"/></form></body></html>
Note : Here, UBound is a method of Array class, which returns the length of an array. We will discuss Arrays in a separate chapter; until that time, please try to digest it.
This will produce the following result. Now, press the button "Get Cookie" to see the cookies, which you have set in previous section.
Note : There may be some other cookies already set on your machine. So, above code will show you all the cookies set at your machine.
Setting the Cookies Expiration Date
You can extend the life of a cookie beyond the current browser session by setting an expiration date and saving the expiration date within the cookie. This can be done by setting the expires attribute to a date and time.
Example
The following example illustrates how to set cookie expiration date after 1 Month:
<html><head><scripttype="text/vbscript">FunctionWriteCookie()
x = now()
y = dateadd("m",1,now())'Making it to expire next
cookievalue = document.myform.customer.value
document.cookie ="name = "& cookievalue
document.cookie ="expires = "& y
msgbox("Setting Cookies : "&"name="& cookievalue )EndFunction</script></head><body><formname="myform"action="">
Enter name: <inputtype="text"name="customer"/><inputtype="button"value="Set Cookie"onclick="WriteCookie()"/></form></body></html>
Deleting a Cookie
Sometimes, you will want to delete a cookie so that subsequent attempts to read the cookie return nothing. To do this, you just need to set the expiration date to a time in the past.
Example
The following example illustrates how to delete a cookie by setting expiration date 1 Month in the past:
<html><head><scripttype="text/vbscript">FunctionWriteCookie()
x = now()
x = now()
a =Month(x)-1
b = day(x)
c = year(x)
d =DateSerial(c,a,b)
e = hour(x)
msgbox e
f = minute(x)
msgbox f
d = cdate(d &" "& e &":"& f)
msgbox d
cookievalue = document.myform.customer.value
document.cookie ="name = "& cookievalue
document.cookie ="expires = "& d
msgbox("Setting Cookies : "&"name="& cookievalue )EndFunction</script></head><body><formname="myform"action="">
Enter name: <inputtype="text"name="customer"/><inputtype="button"value="Set Cookie"onclick="WriteCookie()"/></form></body></html>
VBScript - Numbers
Description
Number functions help the developers to handle numbers in an efficient way and also helps them to convert their subtypes. It also helps them to make use of the inbuilt mathematical functions associated with VBscript.
Number Conversion Functions
Number functions help us to convert a given number from one data subtype to another data subtype.
A Function, which returns the integer part of the given number
Fix
A Function, which returns the integer part of the given number
Log
A Function, which returns the natural logarithm of the given number. Negative numbers disallowed
Oct
A Function, which returns the Octal value of the given percentage
Hex
A Function, which returns the Hexadecimal value of the given number
Rnd
A Function, which returns a random number between 0 and 1
Sgn
A Function, which returns a number corresponding to the sign of the specified number
Sqr
A Function, which returns the square root of the given number. Negative numbers disallowed
Abs
A Function, which returns the absolute value of the given number
Exp
A Function, which returns the value of e raised to the specified number
Sin
A Function, which returns sine value of the given number
Cos
A Function, which returns cosine value of the given number
Tan
A Function, which returns tan value of the given number
VBScript - Strings
Strings are a sequence of characters, which can consist of alphabets or numbers or special characters or all of them. A variable is said to be a string if it is enclosed within double quotes " ".
Syntax
variablename ="string"
Examples
str1 ="string"' Only Alphabets
str2 = "132.45" 'OnlyNumbers
str3 ="!@#$;*"' Only Special Characters
Str4 = "Asc23@#" 'Has all the above
String Functions
There are predefined VBScript String functions, which help the developers to work with the strings very effectively. Below are String methods that are supported in VBScript. Please click on each one of the methods to know in detail.
Returns a String after reversing the sequece of the characters of the given string.
VBScript - Arrays
What is an Array?
We know very well that a variable is a container to store a value. Sometimes, developers are in a position to hold more than one value in a single variable at a time. When a series of values are stored in a single variable, then it is known as array variable.
Array Declaration
Arrays are declared the same way a variable has been declared except that the declaration of an array variable uses parenthesis. In the below example, the size of the array is mentioned in the brackets.
'Method 1 : Using Dim
Dim arr1() 'WithoutSize'Method 2 : Mentioning the Size
Dim arr2(5) 'Declaredwith size of 5'Method 3 : using 'Array' Parameter
Dim arr3
arr3 = Array("apple","Orange","Grapes")
Although, the Array size is indicated as 5, it can hold 6 values as array index starts from ZERO.
Array Index Cannot be Negative.
VBScript Arrays can store any type of variable in an array. Hence, an array can store an integer, string or characters in a single array variable.
Assigning Values to an Array
The values are assigned to the array by specifying array index value against each one of the values to be assigned. It can be a string.
Example
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">Dim arr(5)
arr(0)="1"'Number as String
arr(1)="VBScript"'String
arr(2)=100'Number
arr(3)=2.45'DecimalNumber
arr(4)=#10/07/2013#'Date
arr(5)=#12.45 PM#'Time
document.write("Value stored in Array index 0 : "& arr(0)&"<br />")
document.write("Value stored in Array index 1 : "& arr(1)&"<br />")
document.write("Value stored in Array index 2 : "& arr(2)&"<br />")
document.write("Value stored in Array index 3 : "& arr(3)&"<br />")
document.write("Value stored in Array index 4 : "& arr(4)&"<br />")
document.write("Value stored in Array index 5 : "& arr(5)&"<br />")</script></body></html>
When the above code is saved as .HTML and executed in Internet Explorer, it produces the following result:
Value stored inArray index 0:1Value stored inArray index 1:VBScriptValue stored inArray index 2:100Value stored inArray index 3:2.45Value stored inArray index 4:7/10/2013Value stored inArray index 5:12:45:00 PM
Multi Dimension Arrays
Arrays are not just limited to single dimension and can have a maximum of 60 dimensions. Two-dimension arrays are the most commonly used ones.
Example
In the below example, a multi-dimension array is declared with 3 rows and 4 columns.
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">Dim arr(2,3)'Which has 3 rows and 4 columns
arr(0,0)="Apple"
arr(0,1)="Orange"
arr(0,2)="Grapes"
arr(0,3)="pineapple"
arr(1,0)="cucumber"
arr(1,1)="beans"
arr(1,2)="carrot"
arr(1,3)="tomato"
arr(2,0)="potato"
arr(2,1)="sandwitch"
arr(2,2)="coffee"
arr(2,3)="nuts"
document.write("Value in Array index 0,1 : "& arr(0,1)&"<br />")
document.write("Value in Array index 2,2 : "& arr(2,2)&"<br />")</script></body></html>
When the above code is saved as .HTML and executed in Internet Explorer, it produces the following result:
Value stored inArray index :0,1:OrangeValue stored inArray index :2,2: coffee
Redim Statement
ReDim Statement is used to Declare dynamic-array variables and allocate or reallocate storage space.
Preserve - An Optional parameter used to preserve the data in an existing array when you change the size of the last dimension.
varname - A Required parameter, which denotes Name of the variable, which should follow the standard variable naming conventions.
subscripts - A Required parameter, which indicates the size of the array.
Example
In the below example, an array has been redefined and then preserved the values when the existing size of the array is changed.
Note : Upon resizing an array smaller than it was originally, the data in the eliminated elements will be lost.
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">Dim a()
i=0
redim a(5)
a(0)="XYZ"
a(1)=41.25
a(2)=22
REDIM PRESERVE a(7)For i=3 to 7
a(i)= i
Next'to Fetch the output
For i=0 to ubound(a)Msgbox a(i)Next</script></body></html>
When we save the above script as HTML and execute it in Internet Explorer, it produces the following result.
XYZ
41.252234567
Array Methods
There are various inbuilt functions within VBScript which help the developers to handle arrays effectively. All the methods that are used in conjunction with arrays are listed below. Please click on the method name to know in detail.
A Function, which recovers the allocated memory for the array variables.
VBScript - Date and Time Functions
VBScript Date and Time Functions help the developers to convert date and time from one format to another or to express the date or time value in the format that suits a specific condition.
A Function, which converts the input string to a time format
VBScript - Procedures
What is a Function?
A function is a group of reusable code which can be called anywhere in your program. This eliminates the need of writing same code over and over again. This will enable programmers to divide a big program into a number of small and manageable functions.
Apart from inbuilt Functions, VBScript allows us to write user-defined functions as well. This section will explain you how to write your own functions in VBScript.
Function Definition
Before we use a function, we need to define that particular function. The most common way to define a function in VBScript is by using the Function keyword, followed by a unique function name and it may or may not carry a list of parameters and a statement with a End Function keyword, which indicates the end of the function. The basic syntax is shown below:
Till now, we have seen function without a parameter, but there is a facility to pass different parameters while calling a function. These passed parameters can be captured inside the function and any manipulation can be done over those parameters. The Functions are called using the Call Keyword.
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">Function sayHello(name, age)
msgbox( name &" is "& age &" years old.")EndFunctionCall sayHello("Tutorials point",7)</script></body></html>
Returning a Value from a Function
A VBScript function can have an optional return statement. This is required if you want to return a value from a function.
For example, you can pass two numbers in a function and then you can expect from the function to return their multiplication in your calling program.
NOTE : A function can return multiple values separated by comma as an array assigned to the function name itself.
Example
This function takes two parameters and concatenates them and returns result in the calling program. In VBScript, the values are returned from a function using function name. In case if you want to return two or more values, then the function name is returned with an array of values. In the calling program, the result is stored in the result variable.
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">Function concatenate(first, last)Dim full
full = first & last
concatenate = full 'Returning the result to the function name itself
EndFunction</script></body></html>
Now, we can call this function as follows:
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">Function concatenate(first, last)Dim full
full = first & last
concatenate = full 'Returning the result to the function name itself
EndFunction'Here is the usage of returning value from function.
dim result
result = concatenate("Zara","Ali")
msgbox(result)</script></body></html>
Sub Procedures
Sub Procedures are similar to functions but there are few differences.
Sub procedures DONOT Return a value while functions may or may not return a value.
Sub procedures Can be called without call keyword.
Sub procedures are always enclosed within Sub and End Sub statements.
VBScript allows the developers to interact with the user effectively. It can be a message box to display a message to a user or an input box with which user can enter the values.
VBScript MsgBox Function
The MsgBox function displays a message box and waits for the user to click a button and then an action is performed based on the button clicked by the user.
Prompt - A Required Parameter. A String that is displayed as a message in the dialog box. The maximum length of prompt is approximately 1024 characters. If the message extends to more than a line, then we can separate the lines using a carriage return character (Chr(13)) or a linefeed character (Chr(10)) between each line.
buttons - An Optional Parameter. A Numeric expression that specifies the type of buttons to display, the icon style to use, the identity of the default button, and the modality of the message box. If left blank, the default value for buttons is 0.
Title - An Optional Parameter. A String expression displayed in the title bar of the dialog box. If the title is left blank, the application name is placed in the title bar.
helpfile - An Optional Parameter. A String expression that identifies the Help file to use to provide context-sensitive help for the dialog box.
context - An Optional Parameter. A Numeric expression that identifies the Help context number assigned by the Help author to the appropriate Help topic. If context is provided, helpfile must also be provided.
The Buttonsparameter can take any of the following values:
0 vbOKOnly Displays OK button only.
1 vbOKCancel Displays OK and Cancel buttons.
2 vbAbortRetryIgnore Displays Abort, Retry, and Ignore buttons.
3 vbYesNoCancel Displays Yes, No, and Cancel buttons.
4 vbYesNo Displays Yes and No buttons.
5 vbRetryCancel Displays Retry and Cancel buttons.
16 vbCritical Displays Critical Message icon.
32 vbQuestion Displays Warning Query icon.
48 vbExclamation Displays Warning Message icon.
64 vbInformation Displays Information Message icon.
0 vbDefaultButton1 First button is default.
256 vbDefaultButton2 Second button is default.
512 vbDefaultButton3 Third button is default.
768 vbDefaultButton4 Fourth button is default.
0 vbApplicationModal Application modal. The current application will not work until the user responds to the message box.
4096 vbSystemModal System modal. All applications will not work until the user responds to the message box.
The above values are logically divided into four groups: The first group(0 to 5) indicates the buttons to be displayed in the message box. The second group (16, 32, 48, 64) describes the sytle of the icon to be displayed, the third group (0, 256, 512, 768) indicates which button must be the default, and the fourth group (0, 4096) determines the modality of the message box.
Return Values
The MsgBox function can return one of the following values:
1 - vbOK - OK was clicked
2 - vbCancel - Cancel was clicked
3 - vbAbort - Abort was clicked
4 - vbRetry - Retry was clicked
5 - vbIgnore - Ignore was clicked
6 - vbYes - Yes was clicked
7 - vbNo - No was clicked
Example
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">'MessageBoxwith just prompt message
MsgBox("Welcome")'MessageBoxwith title, yes no and cancel Butttons
a =MsgBox("Do you like blue color?",3,"Choose options")'Assume that you press NoButton
document.write("The Value of a is "& a)</script></body></html>
When the above script is executed, the message box is displayed, and if you press No Button, then the value of a is 7.
TheValue of a is7
VBScript InputBox Function
The InputBox function helps the user to get the values from the user. After entering the values, if the user clicks the OK button or presses ENTER on the keyboard, the InputBox function will return the text in the text box. If the user clicks on the Cancel button, the function will return an empty string ("").
Prompt - A Required Parameter. A String that is displayed as a message in the dialog box. The maximum length of prompt is approximately 1024 characters. If the message extends to more than a line, then we can separate the lines using a carriage return character (Chr(13)) or a linefeed character (Chr(10)) between each line.
Title - An Optional Parameter. A String expression displayed in the title bar of the dialog box. If the title is left blank, the application name is placed in the title bar.
Default - An Optional Parameter. A default text in the text box that the user would like to be displayed.
XPos - An Optional Parameter. The Position of X axis which represents the prompt distance from left side of the screen horizontally. If left blank, the input box is horizontally centered.
YPos - An Optional Parameter. The Position of Y axis which represents the prompt distance from left side of the screen Vertically. If left blank, the input box is Vertically centered.
helpfile - An Optional Parameter. A String expression that identifies the Help file to use to provide context-sensitive Help for the dialog box.
context - An Optional Parameter. A Numeric expression that identifies the Help context number assigned by the Help author to the appropriate Help topic. If context is provided, helpfile must also be provided.
Example
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">'InputBoxwith only PromptInputBox("Enter a number")'InputBoxwith a Title
a=InputBox("Enter a Number","Enter Value")
msgbox a
'InputBoxwith a Prompt,Title and Default value
a=InputBox("Enter a Number","Enter Value",123)
msgbox a
'InputBoxwith a Prompt,Title,Default and XPos
a=InputBox("Enter your name","Enter Value",123,700)
msgbox a
'InputBoxwith a Prompt,Title and Default and YPos
a=InputBox("Enter your name","Enter Value",123,,500)
msgbox a
</script></body></html>
When the above script is executed, the input box is displayed and displays the entered value by the user.
Object Oriented VBScript
What is an Object
VBScript runtime objects help us to accomplish various tasks. This section will help you understand how to instantiate an object and work with it.
Syntax
In order to work with objects seamlessly, we need to declare the object and instantiate it using Set Keyword.
Dim objectname 'Declare the object name
Set objectname = CreateObject(object_type)
Example
In the below example, we are creating an object of type Scripting.Dictionary.
Dim obj
Set obj = CreateObject("Scripting.Dictionary")
Destroying the Objects
The significance of destroying the Object is to free the memory and reset the object variable.
Syntax
In order to destroy the objects, we need to use Set Keyword followed by the object name and point it to Nothing.
Set objectname = Nothing 'Destroy the object.
Example
In the below example, we are creating an object of type Scripting.Dictionary.
Dim obj
Set obj = CreateObject("Scripting.Dictionary")
Set obj = Nothing.
Object Usage
Please click on each one of the given object types to know more.
A Global Object with which we can send output to the Microsoft script debugger.
VBScript - Regular Expressions
What are Regular Expressions?
Regular Expressions is a sequence of characters that forms a pattern, which is mainly used for search and replace. The purpose of creating a pattern is to match specific strings, so that the developer can extract characters based on conditions and replace certain characters.
RegExp Object
RegExp object helps the developers to match the pattern of strings and the properties and methods help us to work with Regular Expressions easily. It is similar to RegExp in JavaScript
Properties
Pattern - The Pattern method represents a string that is used to define the regular expression and it should be set before using the regular expression object.
IgnoreCase - A Boolean property that represents if the regular expression should be tested against all possible matches in a string if true or false. If not specified explicitly, IgnoreCase value is set to False.
Global - A Boolean property that represents if the regular expression should be tested against all possible matches in a string. If not specified explicitly, Global value is set to False.
Methods
Test(search-string) - The Test method takes a string as its argument and returns True if the regular expression can successfully be matched against the string, otherwise False is returned.
Replace(search-string, replace-string) - The Replace method takes 2 parameters. If the search is successful then it replaces that match with the replace-string, and the new string is returned. If there are no matches then the original search-string is returned.
Execute(search-string) - The Execute method works like Replace, except that it returns a Matches collection object, containing a Match object for each successful match. It doesn't modify the original string.
Matches Collection Object
The Matches collection object is returned as a result of the Execute method. This collection object can contain zero or more Match objects and the properties of this object are read-only.
Count - The Count method represents the number of match objects in the collection.
Item - The Item method enables the match objects to be accessed from matches collections object.
Match Object
The Match object is contained within the matches collection object. These objects represent the successful match after the search for a string.
FirstIndex - It represents the position within the original string where the match occurred. This index are zero-based which means that the first position in a string is 0.
Length - A value that represents the total length of the matched string.
Value - A value that represents the matched value or text. It is also the default value when accessing the Match object.
All about Pattern Parameter
The pattern building is similar to PERL. Pattern building is the most important thing while working with Regular Expressions. In this section, we will deal with how to create a pattern based on various factors.
Position Matching
The significance of position matching is to ensure that we place the regular expressions at the correct places.
Symbol
Description
^
Matches only the beginning of a string.
$
Match only the end of a string.
\b
Matches any word boundary
\B
Matches any non-word boundary
Literals Matching
Any form of characters such as alphabet, number or special character or even decimal, hexadecimal can be treated as a Literal. Since few of the characters have already got a special meaning within the context of Regular Expression, we need to escape them using escape sequences.
Symbol
Description
Alphanumeric
Matches alphabetical and numerical characters only.
\n
Matches a new line.
\[
Matches [ literal only
\]
Matches ] literal only
\(
Matches ( literal only
\)
Matches ) literal only
\t
Matches horizontal tab
\v
Matches vertical tab
\|
Matches | literal only
\{
Matches { literal only
\}
Matches } literal only
\\
Matches \ literal only
\?
Matches ? literal only
\*
Matches * literal only
\+
Matches + literal only
\.
Matches . literal only
\b
Matches any word boundary
\B
Matches any non-word boundary
\f
Matches a form feed
\r
Matches carriage return
\xxx
Matches the ASCII character of an octal number xxx.
\xdd
Matches the ASCII character of an hexadecimal number dd.
\uxxxx
Matches the ASCII character of an UNICODE literal xxxx.
Character Classes Matching
The character classes are the Pattern formed by customized grouping and enclosed within [ ] braces. If we are expecting a character class that should not be in the list, then we should ignore that particular character class using the negative symobol, which is a cap ^.
Symbol
Description
[xyz]
Match any of the character class enclosed within the character set.
[^xyz]
Matches any of the character class that are NOT enclosed within the character set.
.
Matches any character class except \n
\w
Match any word character class. Equivalent to [a-zA-Z_0-9]
\W
Match any non-word character class. Equivalent to [^a-zA-Z_0-9]
\d
Match any digit class. Equivalent to [0-9].
\D
Match any non-digit character class. Equivalent to [^0-9].
\s
Match any space character class. Equivalent to [ \t\r\n\v\f]
\S
Match any space character class. Equivalent to [^\t\r\n\v\f]
Repetition Matching
Repetition matching allows multiple searches within the regular expression. It also specifies the number of times an element is repeated in a Regular Expression.
Symbol
Description
*
Matches zero or more occurrences of the given regular Expression. Equivalent to {0,}.
+
Matches one or more occurrences of the given regular Expression. Equivalent to {1,}.
?
Matches zero or one occurrences of the given regular Expression. Equivalent to {0,1}.
{x}
Matches exactly x number of occurrences of the given regular expression.
{x,}
Match atleast x or more occurrences of the given regular expression.
{x,y}
Matches x to y number of occurences of the given regular expression.
Alternation & Grouping
Alternation and grouping helps developers to create more complex Regular Expressions in particularly handling intricate clauses within a Regular Expression which gives a great flexibility and control.
Symbol
Description
0
Grouping a clause to create a clause. "(xy)?(z)" matches "xyz" or "z".
|
Alternation combines one regular expression clause and then matches any of the individual clauses. "(ij)|(23)|(pq)" matches "ij" or "23" or "pq".
Building Regular Expressions
Below are few examples, which clearly explain on how to build a Regular Expression.
Regular Expression
Description
"^\s*.." and "..\s*$"
Represents that there can be any number of leading and trailing space characters in a single line.
"((\$\s?)|(#\s?))?"
Represents an optional $ or # sign followed by an optional space.
"((\d+(\.(\d\d)?)?))"
Represents that at least one digit is present followed by an optional decimals and two digits after decimals.
Example
The below example checks whether or not the user entered an email id whose format should match such that there is an email id followed by '@' and then followed by domain name.
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">
strid ="welcome.user@Only4prorammers.blogspot.in"Set re =NewRegExpWith re
.Pattern="^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$".IgnoreCase=False.Global=FalseEndWith'Test method returns TRUE if a match is found
If re.Test( strid )ThenDocument.write(strid &" is a valid e-mail address")ElseDocument.write(strid &" is NOT a valid e-mail address")EndIfSet re =Nothing</script></body></html>
VBScript - Error Handling
There are three types of errors in programming: (a) Syntax Errors and (b) Runtime Errors (c) Logical Errors.
Syntax errors
Syntax errors, also called parsing errors, occur at interpretation time for VBScript. For example, the following line causes a syntax error because it is missing a closing parenthesis:
<scripttype="text/vbscript">
dim x,y
x ="Only4prorammers"y =Ucase(x
</script>
Runtime errors
Runtime errors, also called exceptions, occur during execution, after interpretation.
For example, the following line causes a runtime error because here syntax is correct but at runtime it is trying to call fnmultiply, which is a non-existing function:
<scripttype="text/vbscript">Dim x,y
x =10
y =20
z = fnadd(x,y)
a = fnmultiply(x,y)Function fnadd(x,y)
fnadd = x+y
EndFunction</script>
Logical errors
Logic errors can be the most difficult type of errors to track down. These errors are not the result of a syntax or runtime error. Instead, they occur when you make a mistake in the logic that drives your script and you do not get the result you expected.
You can not catch those errors, because it depends on your business requirement what type of logic you want to put in your program.
For example, dividing a number by zero or a script that is written which enters into infinite loop.
Err Object
Assume if we have a runtime error, then the execution stops by displaying the error message. As a developer, if we want to capture the error, then Error Object is used.
Example
In the below example, Err.Number gives the error number and Err.Description gives error description.
<scripttype="text/vbscript">Err.Raise6'Raise an overflow error.MsgBox"Error # "&CStr(Err.Number)&" "&Err.DescriptionErr.Clear'Clear the error.</script>
VBScript Miscellaneous Statements
There are few other important statements which helps the developers to develop an efficient script. Below are the list of statements tabulated and explained in detail with examples.
Option Explicit forces the developer to declare the variables using Dim statement before they are used in some part of the code.
Syntax
OptionExplicit
Example
If we use Option Explicit and if we don't declare the variables then the interpreter will throw and error.
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">OptionExplicitDim x,y,z,a
x =10
y =20
z = fnadd(x,y)
a = fnmultiply(x,y)Function fnadd(x,y)
fnadd = x+y
EndFunction</script></body></html>
ScriptEngine
ScriptEngine represents the details of the scripting language in use. It is also used in combination with ScriptEngineMajorVersion, ScriptEngineMinorVersion, ScriptEngineBuildVersion which gives the major version of the vbscript engine, minor version the vbscript engine and the build version of vbscript respectively.
Syntax
ScriptEngine
Example
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">Dim scriptdetails
scriptdetails =" Version "&ScriptEngine&" - "'For getting Major version, use ScriptEngineMajorVersion'
scriptdetails = scriptdetails &ScriptEngineMajorVersion&"."'For getting Minor version, use ScriptEngineMinorVersion'
scriptdetails = scriptdetails &ScriptEngineMinorVersion&"."'For getting Build version, use ScriptEngineBuildVersion'
scriptdetails = scriptdetails &ScriptEngineBuildVersionDocument.write scriptdetails
</script></body></html>
Save the file with .html extension upon executing the script in IE , the following result is displayed on the screen.
VersionVBScript-5.8.16996
IsEmpty
The Function IsEmpty is used to check whether or not the expression is empty. It returns a boolean value. IsEmpty returns True if the variable is uninitialized or explicitly set to Empty. Otherwise the expression returns False.
Save the file with .html extension upon executing the script in IE , the following result is displayed on the screen.
Line1:TrueLine2:FalseLine3:True
IsNull
The Function IsNull is used to check whether or not the expression has a valid data. It returns a boolean value. IsNull returns True if the variable is Null otherwise the expression returns False.
Syntax
IsNull(expression)
Example
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">Dimvar, res
res =IsNull(var)
document.write "Line 1 : "& res &"<br />"var=Null
res =IsNull(var)
document.write "Line 2 : "& res &"<br />"var=Empty
res =IsNull(var)
document.write "Line 3 : "& res &"<br />"</script></body></html>
Save the file with .html extension upon executing the script in IE , the following result is displayed on the screen.
Line1:FalseLine2:TrueLine3:False
IsObject
The IsObject Function is used to check whether or not the expression has a valid Object. It returns a boolean value. IsObject returns True if the expression contains an object subtype otherwise the expression returns False.
Syntax
IsObject(expression)
Example
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">Dim fso,b
b =10set fso = createobject("Scripting.Filesystemobject")
x = isobject(fso)Document.write "Line 1 : "& x &"<br />"
y = isobject(b)Document.write "Line 2 : "& y &"<br />"</script></body></html>
Save the file with .html extension upon executing the script in IE , the following result is displayed on the screen.
Line1:TrueLine2:False
IsNumeric
The IsNumeric Function is used to check whether or not the expression has a number subtype. It returns a boolean value. IsObject returns True if the expression contains an number subtype otherwise the expression returns False.
The Eval Function executes an expression and returns the result either as a string or a number.
Syntax
Eval(expression)
The argument Expression can be a string expression or a number. If you pass to the Eval function a string that doesn't contain a numeric expression or a function name but only a simple text string, a run-time error occurs. For example, Eval("VBScript") results in an error.
Save the file with .html extension upon executing the script in IE , the following result is displayed on the screen.
20false15
Execute
The Execute statement accepts argument that is a string expression containing one or more statements for execution.
Syntax
Execute(expression)
In VBScript, a = b can be interpreted two ways. It can be treated as an assignment statement where the value of x is assigned to y. It can also be interpreted as an expression that tests if a and b have the same value. If they do, result is True; if they are not, result is False. The Execute statement always uses the first interpretation while the Eval statement always uses the second.
Example
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">Dim x
x ="Global"
y ="VBScript"Execute("x=y")
msgbox x
msgbox y
</script></body></html>
Save the file with .html extension upon executing the script in IE , the following result is displayed on the screen.
VBScriptVBScript
With..End With
The With statement allows us to perform a series of operation on a specified object without explicitly mentioning the object name over again and again.
Syntax
With(objectname)
statement 1
statement 2
statement 3......
statement n
EndWith
Example
Upon Executing the below script, Winword is opened and the specified text is entered.
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">Msg="Vbscript"& vbCrLf &"Programming"Set objWord =CreateObject("Word.Application")
objWord.Visible=True' Objects methods are accessed without requaliyfying the objects again.'With objWord
.Documents.Add.Selection.TypeTextMsg.Selection.WholeStoryEndWith</script></body></html>
Randomize
The Randomize statement initializes the random number generator which is helpful for the developers to generate a random number.
Syntax
Randomize[number]
Example
Upon Executing the below script, Winword is opened and the specified text is entered.
<!DOCTYPE html><html><body><scriptlanguage="vbscript"type="text/vbscript">DimMyValueRandomizeMyValue=Int((100*Rnd)+1)'Generate random value between 1 and 100.MsgBoxMyValue</script></body></html>
Save the above script as HTML and upon executing the script in IE, the following output is shown.