मेरे पास एक एएसपी पेज है और उस पेज में टेक्स्टबॉक्स रहता है। इस टेक्स्टबॉक्स में एक प्रकार का डबल है और बैक एंड कोड में दशमलव प्रकार है।

यहां टेक्स्टबॉक्स है।

            <asp:TableCell>
                <asp:TextBox ID="txtPremium" runat="server" Width="90px"></asp:TextBox>
                <asp:RequiredFieldValidator ID="rfvPremium" runat="server" ControlToValidate="txtPremium"
                    ErrorMessage="Required" ForeColor="Red" Display="Dynamic" ValidationGroup="Insert"></asp:RequiredFieldValidator>
                <asp:CompareValidator ID="txtPremium_Integer" runat="server" ValidationGroup="Insert"
                    ControlToValidate="txtPremium" Display="Dynamic" ErrorMessage="'Premium' must be decimal"
                    ForeColor="Red" Operator="DataTypeCheck" SetFocusOnError="true" Type="Double" />
            </asp:TableCell>

UI में, जब मैं उस टेक्स्ट बॉक्स में मान जोड़ने का प्रयास करता हूं जैसे कि 10.0 (एक बिंदु के साथ) टेक्स्ट बॉक्स त्रुटि संदेश प्रकट होता है। जब मैं 10,0 (अल्पविराम के साथ) जैसे मान दर्ज करने का प्रयास करता हूं, तो इसे स्वीकार कर लिया जाता है। मुझे एक बिंदु दर्ज करने में सक्षम होना चाहिए।

मैंने टेक्स्ट बॉक्स के प्रकार को मुद्रा में बदलने का प्रयास किया है लेकिन वही त्रुटि होती है। टेक्स्ट बॉक्स की प्रकार सूची में कोई अन्य प्रासंगिक प्रकार उपलब्ध नहीं हैं।

यहाँ पूरा करने के लिए मेरे कोड के पीछे टेक्स्ट बॉक्स की घोषणा है।

Dim _premium As Decimal = Decimal.Parse(txtPremium.Text)

मुझे यकीन नहीं है कि टेक्स्ट बॉक्स के लिए बिंदुओं को स्वीकार करने के लिए मैं क्या कर सकता हूं।

कोई विचार?

1
Nikos 12 जुलाई 2018, 12:58
क्या आपके पीसी/एएसपी होस्ट के लिए भाषा/क्षेत्र सेटिंग यूरोपीय संख्या प्रारूप का उपयोग करती है जो , को . के बजाय अंकों और दशमलव के बीच विभाजक के रूप में मानती है?
 – 
A Friend
12 जुलाई 2018, 13:00
ओह, मुझे नहीं पता कि मैं ग्राहक कंप्यूटर का उपयोग कर रहा हूं। मैं इसे कैसे चेक कर सकता हूं?
 – 
Nikos
12 जुलाई 2018, 13:01
संभावित डुप्लिकेट: stackoverflow.com/questions/19893407/…
 – 
Valentin Sky
12 जुलाई 2018, 13:03
1
यदि कॉमा और डॉट दोनों सही इनपुट हैं: € 1,95 और $ 1.95, तो आप दशमलव संख्याओं की जांच के लिए अपना खुद का CustomValidator बना सकते हैं। @ValentinSky, यह डुप्लिकेट नहीं है क्योंकि ओपी सत्यापन नियंत्रण के बारे में पूछ रहा है।
 – 
VDWWD
12 जुलाई 2018, 13:18
मैंने कोड अपडेट किया है।
 – 
Nikos
12 जुलाई 2018, 13:22

2 जवाब

सबसे बढ़िया उत्तर

हाय तुलना सत्यापनकर्ता का उपयोग दो क्षेत्रों के बीच मूल्यों की तुलना करने के लिए किया जाता है, जैसे पासवर्ड और मिलान पासवर्ड

यदि आप दशमलव के लिए मान्य करना चाहते हैं तो इसके बजाय दशमलव स्वीकार करने वाले अभिव्यक्ति के साथ नियमित अभिव्यक्ति सत्यापनकर्ता का उपयोग करें। निम्नलिखित व्यंजक में 2 को अधिकतम अनुमत दशमलव मान से बदलें ^\d+.\d{0,2}

    <asp:RegularExpressionValidator runat="server" ErrorMessage="Decimal Only" ID="txtregpre" ValidationGroup="Insert"
                       ControlToValidate="txtPremium"              
ValidationExpression="^\d+\.\d{0,2}$"></asp:RegularExpressionValidator>
1
ashish shiwalkar 12 जुलाई 2018, 14:25
यदि आप कोमा की अनुमति देना चाहते हैं तो अभिव्यक्ति बदल जाएगी
 – 
ashish shiwalkar
12 जुलाई 2018, 14:26
इसे अल्पविराम के लिए उपयोग करें ^[1-9][\.\d]*(,\d+)?$
 – 
ashish shiwalkar
12 जुलाई 2018, 14:28
मैं कल कोशिश करूँगा और वापस आऊंगा। धन्यवाद।
 – 
Nikos
12 जुलाई 2018, 14:28
यह काम करता हैं। बस कुछ स्पष्टीकरण। क्या आप स्पष्ट रूप से समझा सकते हैं कि इसका क्या अर्थ है? "^\d+\.\d{0,2}$"
 – 
Nikos
13 जुलाई 2018, 07:53
यह दशमलव d के लिए एक नियमित अभिव्यक्ति d है{0,2} का अर्थ है दशमलव से 2 अंक जैसे 1.12 आगे पढ़ने के लिए en.wikipedia.org/wiki/Regular_expression और वीबी में गहराई से नियमित उत्सर्जन के लिए tutorialspoint.com/vb.net/vb.net_regular_expressions.htm (probabaly overkill) बस याद रखें कि आपके टेक्स्ट को रेगुलर एक्सप्रेशन के अनुसार मान्य किया जाएगा यदि इसकी कोई त्रुटि नहीं है तो आप स्ट्रिंग में सभी पैटर्न को मान्य कर सकते हैं जैसे ईमेल, दशमलव स्ट्रिंग विशेष अल्पविराम और दशमलव बिंदु, विशेष प्रारूप में दिनांक आदि
 – 
ashish shiwalkar
13 जुलाई 2018, 08:07

आप सत्यापन की तुलना करने के बजाय नियमित अभिव्यक्ति का उपयोग कर सकते हैं, यहां उदाहरण 10.0 और 10,0 दोनों के लिए काम कर रहा है

   <asp:TableCell>
        <asp:TextBox ID="txtPremium" runat="server" Width="90px"></asp:TextBox>
        <asp:RequiredFieldValidator ID="rfvPremium" runat="server" ControlToValidate="txtPremium"
            ErrorMessage="Required" ForeColor="Red" Display="Dynamic" ValidationGroup="Insert"></asp:RequiredFieldValidator>
        <!-- Your Regular Expression Validator -->
        <asp:RegularExpressionValidator ID="txtPremium_Integer"
            ControlToValidate="txtPremium" ValidationGroup="Insert" ForeColor="Red"
            runat="server" Display="Dynamic"
            ErrorMessage="'Premium' must be decimal"
            ValidationExpression="^\d+([,\.]\d{1,2})?$">
        </asp:RegularExpressionValidator>
    </asp:TableCell>
1
Nitin Kinger 12 जुलाई 2018, 15:01