Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1307
  • Last Modified:

Need Regular Expression that allows letters, numbers, and standard puctuation

I am developing a web site in ASP.NET with VB.NET on MS Visual Web Developer.  I have a number of form fields requiring validation.  I have regualr expression, "^[a-zA-Z0-9]+(([\'\,\.\!\- ][a-zA-Z0-9 ])?[a-zA-Z0-9]*)*$", but I need one that allows numbers, letters, dash and standard punctuation (- . , ! ).  Can someone please help me with this?
0
OVC-it-guy
Asked:
OVC-it-guy
  • 2
  • 2
  • 2
1 Solution
 
Muhammad KashifDevelopment ManagerCommented:
What I understood that you want that your textbox should allow numbers, letters, dash and ... Not the regular expression with specific format.

Then you should use KeyDown and KeyPress event.

So use in following way It will allow only Numbers to be entered in TextBox1

In the same way you can add more checks.
e.g. for letters add check in KeyDown Event.

If e.KeyCode < Keys.A OrElse e.KeyCode > Keys.Z Then

Public EnteredText As Boolean
 
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
    EnteredText = False
    If e.KeyCode < Keys.D0 OrElse e.KeyCode > Keys.D9 Then
        If e.KeyCode < Keys.NumPad0 OrElse e.KeyCode > Keys.NumPad9 Then
            If e.KeyCode <> Keys.Back And e.KeyCode <> Keys.Subtract Then
                EnteredText = True
            End If
        End If
    End If
End Sub
 
 
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
    If EnteredText = True Then
        e.Handled = True
        EnteredText = False
    End If
End Sub

Open in new window

0
 
Muhammad KashifDevelopment ManagerCommented:
0
 
OVC-it-guyAuthor Commented:
That's a lot more code than what I'm looking for.  I just need the validationExpression similar to something like ^[-a-zA-Z0-9.,! ]$ might do it.  I was looking for some with more experince on this type of expression.
<asp:RegularExpressionValidator ID="CommentsRegex" runat="server" ControlToValidate="txtComments" ValidationExpression="^[a-zA-Z0-9]+(([\'\,\.\!\- ][a-zA-Z0-9 ])?[a-zA-Z0-9]*)*$" ErrorMessage="Please enter only letters, numbers and punctuation." />

Open in new window

0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
petiexCommented:
^[a-zA-Z0-9\'\,\.\!\-\?]*$
Will match zero or more numbers, characters, and the following characters
' , . ! - ?

If you want it also to match space characters, put a space somewhere between the brackets:
^[a-zA-Z0-9\'\,\.\!\-\? ]*$

To match one or more characters, use + instead of *:
^[a-zA-Z0-9\'\,\.\!\-\? ]+$
0
 
petiexCommented:
To make sure you are matching what you want to match, there's a nice regex tester here that I like to use: http://www.regular-expressions.info/javascriptexample.html

That site also has everything you could possibly want to know about regular expressions if you click around.
0
 
OVC-it-guyAuthor Commented:
Thanks, petiex.
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 2
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now