2 की सटीकता के साथ एक दशमलव के लिए नियमित अभिव्यक्ति क्या है?
मान्य उदाहरण :
123.12
2
56754
92929292929292.12
0.21
3.1
अमान्य उदाहरण:
12.1232
2.23332
e666.76
दशमलव बिंदु वैकल्पिक हो सकता है, और पूर्णांक भी शामिल हो सकते हैं।
2 की सटीकता के साथ एक दशमलव के लिए नियमित अभिव्यक्ति क्या है?
मान्य उदाहरण :
123.12
2
56754
92929292929292.12
0.21
3.1
अमान्य उदाहरण:
12.1232
2.23332
e666.76
दशमलव बिंदु वैकल्पिक हो सकता है, और पूर्णांक भी शामिल हो सकते हैं।
जवाबों:
कार्यान्वयन से मान्य रेगेक्स टोकन भिन्न होते हैं। एक सामान्य रूप है:
[0-9]+(\.[0-9][0-9]?)?
अधिक कॉम्पेक्ट:
\d+(\.\d{1,2})?
दोनों मान लेते हैं कि दोनों के दशमलव स्थान के पहले और बाद में कम से कम एक अंक है।
यह सुनिश्चित करने के लिए कि संपूर्ण स्ट्रिंग इस फॉर्म का एक नंबर है, अभिव्यक्ति को स्टार्ट और एंड टैग में लपेटें जैसे (पर्ल के फॉर्म में):
^\d+(\.\d{1,2})?$
दशमलव से पहले एक अग्रणी अंक के बिना संख्याओं से मेल खाने के लिए ( .12) और 12.एक एकल अवधि ( .) के इनपुट को छोड़कर पूरे संख्या में एक अनुगामी अवधि ( ) होने के बाद, निम्नलिखित प्रयास करें:
^(\d+(\.\d{0,2})?|\.?\d{1,2})$
()?इसे वैकल्पिक बनाने के लिए आंशिक भाग को लपेटा गया । ध्यान रखें कि यह ऐसे रूपों को 12. शामिल करता है, जिसमें शामिल करना अधिक पसंद होगा ^\d+\\.?\d{0,2}$।
^\d{1,6}(\.\d{1,2})?$पुनरावृत्ति को रोकने के लिए उपयोग करें और दशमलव मान के पूरे भाग को प्रतिबंध दें।
-?रूप में, के साथ अभिव्यक्ति उपसर्ग द्वारा नकारात्मक का समर्थन कर सकते हैं -?\d+(\.\d{1,2})?। मैंने नकारात्मक बिंदुओं को शामिल नहीं किया या दशमलव बिंदु से शुरू किया क्योंकि वे ओपी के प्रश्न में नहीं थे, हालांकि वे निश्चित रूप से अधिक सामान्य संख्या प्रारूप के लिए मान्य हैं। यहाँ टिप्पणी थ्रेड ".21" को संभालने के लिए कुछ तरीके देता है।
^[0-9]+(\.[0-9]{1,2})?$
और चूंकि नियमित अभिव्यक्तियाँ पढ़ने के लिए भयानक हैं, बहुत कम समझ में आता है, यहाँ क्रिया समतुल्य है:
^ # Start of string
[0-9]+ # Require one or more numbers
( # Begin optional group
\. # Point must be escaped or it is treated as "any character"
[0-9]{1,2} # One or two numbers
)? # End group--signify that it's optional with "?"
$ # End of string
आप सबसे नियमित अभिव्यक्ति कार्यान्वयन ( पीसीआरई , सबसे आम सहित ) के [0-9]साथ बदल सकते हैं । मैंने इसे छोड़ दिया है क्योंकि मुझे लगता है कि इसे पढ़ना आसान है।\d[0-9]
इसके अलावा, यहाँ सरल पायथन लिपि है जिसे मैंने इसे जाँचने के लिए प्रयोग किया है:
import re
deci_num_checker = re.compile(r"""^[0-9]+(\.[0-9]{1,2})?$""")
valid = ["123.12", "2", "56754", "92929292929292.12", "0.21", "3.1"]
invalid = ["12.1232", "2.23332", "e666.76"]
assert len([deci_num_checker.match(x) != None for x in valid]) == len(valid)
assert [deci_num_checker.match(x) == None for x in invalid].count(False) == 0
+पहली क्लोजिंग परन के बाद निकालें ,^([0-9]{0,3})(\.[0-9]{1,2})?$
\\.बजाय होना चाहिए \.क्योंकि .यह काम करेगा जैसा दिखेगा, लेकिन किसी भी चरित्र से मेल खाता है (न केवल दशमलव स्थान)। उदाहरण के लिए, दोनों 1z23और 1.23वैध माना जा सकता है अगर आप इसे बच नहीं है
वैकल्पिक माइनस साइन को शामिल करने के लिए और संख्याओं को अलग करने के लिए 015( जैसे कि अष्टक संख्याओं के लिए गलत किया जा सकता है) लिखें:
-?(0|([1-9]\d*))(\.\d+)?
उन संख्याओं के लिए जिनमें एक हजारों विभाजक नहीं हैं, मुझे यह सरल, कॉम्पैक्ट रेगेक्स पसंद है:
\d+(\.\d{2})?|\.\d{2}
या, 2 की सटीकता तक सीमित नहीं है:
\d+(\.\d*)?|\.\d+
उत्तरार्द्ध
1
100
100.
100.74
100.7
0.7
.7
.72 से मेल खाता है
और यह खाली स्ट्रिंग (जैसे \ d *।? D *) से मेल नहीं खाता
: मैं करने के लिए दो दशमलव स्थानों के लिए इस एक का उपयोग
(^(\+|\-)(0|([1-9][0-9]*))(\.[0-9]{1,2})?$)|(^(0{0,1}|([1-9][0-9]*))(\.[0-9]{1,2})?$)
गुजरता है:
.25
0.25
10.25
+0.25
पास नहीं:
-.25
०१.२५
1.
1.256
^[0-9]+(\.([0-9]{1,2})?)?$
12.स्वीकृत जैसी चीजें करेंगे । यह वह नहीं है जो आमतौर पर स्वीकार किया जाता है, लेकिन यदि आपको "लचीला" होने की आवश्यकता है, तो यह एक रास्ता है। और निश्चित रूप से [0-9]इसके साथ प्रतिस्थापित किया जा सकता है \d, लेकिन मुझे लगता है कि यह इस तरह से अधिक पठनीय है।
मुख्य उत्तर गलत है क्योंकि यह वैध 5.या 5,इनपुट है
यह कोड इसे संभालता है (लेकिन मेरे उदाहरण में नकारात्मक संख्याएं निषिद्ध हैं):
/^[0-9]+([.,][0-9]{1,2})?$/;
परिणाम बलो हैं:
true => "0" / true => "0.00" / true => "0.0" / true => "0,00" / true => "0,0" / true => "1,2" true => "1.1" / सत्य => "1" / सत्य => "100" सत्य => "100.00" / सत्य => "100.0" / सत्य => "1.11" / सत्य => "1,11" / गलत => "-5" / गलत => "-0.00" / सच => "101" / गलत => "0.00.0" / सत्य => "0.000" / सत्य => "000.25" / गलत => .25 "। / true => "100.01" / true => "100.2" / true => "00" / false => "" 5. / गलत => "6," / सत्य => "82" / सत्य => "81,3" / सत्य => "
क्या आपको खाते eमें लेने की आवश्यकता नहीं होगी e666.76?
साथ में
(e|0-9)\d*\d.\d{1,2)
इसने मेरे साथ काम किया:
(-?[0-9]+(\.[0-9]+)?)
समूह 1 आपकी फ्लोट संख्या है और समूह 2 केवल अंश है।
यह प्रतिपादक के साथ दशमलव और 2 अंकों तक की अनुमति देगा,
^[+-]?\d+(\.\d{2}([eE](-[1-9]([0-9]*)?|[+]?\d+))?)?$
1.2e-10
([0-9]+)?बेहतर लिखा है \d*। अब यह मेल नहीं खाता 10e3। और ओपी 2 अंकों तक मैच करना चाहता है।
function DecimalNumberValidation() {
var amounttext = ;
if (!(/^[-+]?\d*\.?\d*$/.test(document.getElementById('txtRemittanceNumber').value))){
alert('Please enter only numbers into amount textbox.')
}
else
{
alert('Right Number');
}
}
फ़ंक्शन किसी भी दशमलव संख्या को मान्य करेगा मौसम संख्या में दशमलव स्थान हैं या नहीं, यह कहेंगे "राइट नंबर" अन्य बुद्धिमान "कृपया केवल संख्या को राशि टेक्स्टबॉक्स में दर्ज करें।" अलर्ट मैसेज आएगा।
धन्यवाद... :)