Validator in asp.net - asp.net

i have a textbox that will only accpet numbers, so i have to make validator that accept only number except 0, what's the regular expression i should do, any help please, i have already try this :
<asp:RegularExpressionValidator ID="regValSummary" runat="server"
ControlToValidate="txtSummary" Display="Dynamic" ValidationExpression="[1-9]*"
ValidationGroup="grpLigneComande">
*
</asp:RegularExpressionValidator>
any suggestion please !!

You can use Compare Validator instead of RegularExpressionValidator like
<asp:CompareValidator ID="CompareValidator1" runat="server" ValueToCompare="0" ControlToValidate="TextBox1"
ErrorMessage="Must enter positive integers" Operator="GreaterThan" Type="Integer"></asp:CompareValidator>
Hope this will help.

i think a RegularExpressionValidator won't be able to help you. Try exploring MaskedTextBox. C# Numeric Only TextBox Control
Or if you're using Ajax Control Toolkit, try the FilteredTextBoxExtender, using a sample MobileNo textfield which will accept numbers except 0:
<asp:TextBox ID="txtMobileNo" runat="server" CssClass="textBox" Width="200px" MaxLength="15" />
<ajax:FilteredTextBoxExtender runat="server" ID="FilteredTextBoxExtender4" TargetControlID="txtMobileNo" FilterMode="ValidChars" FilterType="Numbers, Custom" ValidChars="+-" InvalidChars="0" />

Related

Asp.net Range Validator

Html (Full Code)
<asp:TextBox ID="txtSasiNo" runat="server" Width="250px" MaxLength="17"></asp:TextBox>
<asp:RegularExpressionValidator CssClass="zorunlu" ValidationGroup="kaskoTeklifSayfasi" Display="Dynamic" ID="rangevalidator1" runat="server" SetFocusOnError="true" ControlToValidate="txtSasiNo" ErrorMessage="Enter number characters only (8 or 17)" ValidationExpression="^\d{8}$|^\d{17}$""></asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="rfvSasiNo" SetFocusOnError="true" ValidationGroup="kaskoTeklifSayfasi" runat="server" Display="Dynamic" ControlToValidate="txtSasiNo" CssClass="zorunlu">Please enter Number.</asp:RequiredFieldValidator>
Question:
I am trying to use RangeValidator.
If txtnumber is null or empty and if txtnumber is not 8 characters or not 17 characters.
Only 2 options first option is 8 character second option is 17 character.
txtnumber text character only can be like below
12345678 // This is 8 characters
12345678901234567 // This is 17 characters
What to add to RangeValidator in order to achieve this ?
Thanks.
As described by Ondrej you can use RegularExpressionValidator. To be more specific with the aspx. See the code below:-
UPDATED CODE:
Here you go:-
<asp:TextBox ID="txtnumber" runat="server" Width="250px"></asp:TextBox>
<asp:RegularExpressionValidator Display="Dynamic" ID="regtxt" runat="server" SetFocusOnError="true" ControlToValidate="txtnumber" ErrorMessage="Enter number characters only (8 or 17)"
ValidationExpression="^\d{8}$|^\d{17}$"></asp:RegularExpressionValidator>
Hope it helps
Don't use range validator - use regex validator instead:
<asp:RegularExpressionValidator ValidationExpression="^([0-9]{8})|([0-9]{17})$" ... />
The validators usually ignore empty fields. Notable exception: the RequiredFieldValidator. Add that to guard against empty fields and keep the RangeValidator to force a specific range of values.

Getting error msg while updating a form of regular expression [a-zA-Z]+-[0-9]+

When I have to update my aspx.net form ..I got the error message that incalid code ,,,the regular expression is used is [a-zA-Z]+-[0-9]+ if I remove the expression ...update is performed...kindly reply what is the solution
<asp:TextBox ID="TextBox2" runat="server" CssClass="style19" Width="239px" BorderColor="#006600" BorderStyle="Solid" ForeColor="#009900"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator6" runat="server" ControlToValidate="TextBox2" ErrorMessage="Invalid Code" ForeColor="Red" ValidationExpression="[a-zA-Z]+-[0-9]+"></asp:RegularExpressionValidator>
If you enter value to TextBox2, you must just respect this expression on your validator
[a-zA-Z]+-[0-9]+
If you don't respect you can't validate your data
If you want disable, you must just delete your validator
Replace with this code
<asp:TextBox ID="TextBox2" runat="server" CssClass="style19" Width="239px" BorderColor="#006600" BorderStyle="Solid" ForeColor="#009900"></asp:TextBox>
Your question is unintelligible. Where is the error message coming from? How are you updating your form? Where is the regular expression being applied, and to what?

ASP.net RegularExpressions

Ok so I have a regular expression validator on my form but I am new to it and was wondering how I add another expression to it so I can look for something else as well. Here is my sample code:
<asp:RegularExpressionValidator
ID="RegularExpressionValidator3"
ControlToValidate="txtRelationship"
ValidationExpression="^[a-zA-Z''-,\'.'\s]{1,30}$"
EnableClientScript="true"
Display="None"
ValidationGroup="<%# ((TSAPassenger)((RepeaterItem)Container.Parent.Parent).DataItem).PaxKey %>"
runat="server"
ErrorMessage="Invalid Relationship.">
Invalid Relationship
</asp:RegularExpressionValidator>
I am trying to add in if the field name is equal to "test" or "tba" to give the same error or a different error. How would I add another expression into this?
Would the second validation look like this?
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="txtName" ValidationExpression="^.*\b(test|tba)\b.*$"
EnableClientScript="true" Display="None" ValidationGroup="<%# ((TSAPassenger)((RepeaterItem) Container.Parent.Parent).DataItem).PaxKey %>" runat="server" ErrorMessage="This can not be used as a Contact Name."></asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="RequiredFieldValidatorName" ControlToValidate="txtName" Enabled="<%# (Container.ItemIndex == 0 || Container. = "test") %>" ValidationGroup="<%# ((TSAPassenger)((RepeaterItem) Container.Parent.Parent).DataItem).PaxKey %>" runat="server" ErrorMessage="Contact Name is required."></asp:RequiredFieldValidator>
The best solution would be IMHO to use a custom validator and code your validations in the onServerValidate event.
Of course, you can always add another regExp validator or even a compare validator to the same object you are validating.
Hope this helps

Asp.net regex validator does not work

My textbox should contain 8 digits. If not i want to pop up an alert box. But the regualr expression validator does not trigger. Why?
<asp:LinkButton ID="LinkPayment" CssClass="btn mainBtn" runat="server" onclick="LinkPayment_Click" OnClientClick="_gaq.push(['_trackPageview', '/virtualgoal/smspayment']);">Betal ></asp:LinkButton>
<asp:RequiredFieldValidator ID="RequiredCustomersPhone" Display="None" ValidationGroup="ValGroupCustomersPhone" ControlToValidate="CustomersPhone" runat="server" ErrorMessage="Du må fylle inn ditt mobilnummer!"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegExValCustomersPhone" ValidationGroup="ValGroupCustomersPhone" runat="server" ControlToValidate="CustomersPhone" Display="None" ErrorMessage="Telefonnummer må bestå av 8 siffer!" ValidationExpression="[0-9]{8}"></asp:RegularExpressionValidator>
<asp:ValidationSummary ID="ValidationSummary" ShowSummary="False" ValidationGroup="ValGroupCustomersPhone" ShowMessageBox="True" runat="server" />
Add the following code:
ValidationGroup="ValGroupCustomersPhone"
to your linkbutton
Are you trying to validate an empty field? You may need a required field validatior as well. It's a shame there is no 'ValidateEmptyText' field on Regex validators.

Regular expression for date in asp.net?

In web application, i am using regular expression for date like "dd-mm-yyyy" format for this i get the validation but it is not working when we enter date like "12-02-2012" remaining condition it is working fine, can you help me this is my validation expression.
<asp:RegularExpressionValidator ID ="myg" runat ="server" ControlToValidate ="txt" ErrorMessage ="Check"
ValidationExpression ="^(((0[1-9]|[12]\d|3[01])-(0[13578]|1[02])-((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)-(0[13456789]|1[012])-((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$" >
</asp:RegularExpressionValidator>
I solve the problem,
ValidationExpression ="^(((0[1-9]|[12]\d|3[01])-(0[13578]|1[02])-((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)-(0[123456789]|1[012])-((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$"
asp:RegularExpression is not the way to do this.
For validating date using an ASP.NET Validator its ideal to use asp:CompareValidator
Here is a small mock-up
<asp:TextBox ID="txtDatecompleted" runat="server"/>
<asp:CompareValidator ID="dateValidator" runat="server"
ControlToValidate="txtDatecompleted"
ErrorMessage="Please enter a valid date."
Operator="DataTypeCheck"
Type="Date"
ValidationGroup="TestVGroup">
</asp:CompareValidator>
<br />
<asp:Button ID="ClickButton" Text="Click Me" runat="server"
ValidationGroup="TestVGroup"
OnClick="ClickButton_Click" />
This will automatically check for different date formats and leap years
I slove the problem,
ValidationExpression ="^(((0[1-9]|[12]\d|3[01])-(0[13578]|1[02])-((19|[2-9]\d)\d{2}))|
((0[1-9]|[12]\d|30)-(0[123456789]|1[012])-((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])
\/02\/((19|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|
((16|[2468][048]|[3579][26])00))))$"

Resources