javascript - जावास्क्रिप्ट regex OR |




numbers operators (4)

आप दूसरे भाग को वैकल्पिक के रूप में देख सकते हैं

function check(v) {
    return /^(?=.)\d{0,5}(\.\d{1,4})?$/.test(v);
}

console.log(['', '.123', 123, 12345, 12345.2156, 123456, 123456.12, 12345.12345].map(check));

मैं वर्तमान में खोज रहा हूं कि इस एप्लिकेशन के लिए एक रीजेक्स सही तरीके से कैसे लिखूं:

1 - बिना नंबर "।" 1 से 5 अंकों की लंबाई => /^(\d{1,5})$/
2 - "संख्या।" "।" से पहले 1 से 5 अंकों की लंबाई के साथ और "।" के बाद 1 से 4 अंक या "।" "।" के बाद 1 से 4 अंकों की लंबाई के साथ => / /^(\d{1,5})?\.?(\d{1,4})?$/ = /^(\d{1,5})?\.?(\d{1,4})?$/

मैंने एक या ऑपरेटर "|" का प्रयोग करने की कोशिश की, लेकिन यह काम नहीं करती है; (=> /^(\d{1,5})?\.?(\d{1,4})?$|^(\d{1,5})$/ मुझे समझ में नहीं आ रहा है कि, यह मेरी पहली जावा स्क्रिप्ट regex है और मुझे ठीक से "|" ऑपरेटर का उपयोग करने के लिए निश्चित नहीं है

उत्तर के बाद मैं 1 regex के साथ प्राप्त करना चाहूंगा:

123 => ok
12345 => ok
123456 => not ok
12345.2156 => ok
123456.12 => not ok
12345.12345 => not ok

आपकी मदद के लिए बहुत बहुत शुक्रिया। आपका दिन शुभ हो।

एटीन



Array#split साथ बेहतर उपयोग करें यह उसी परिणाम देता है जो आप regex पैटर्न से अपेक्षा करते हैं।

function check(a){
 var c= a.toString().split(".");
   return c[1]? ((c[0].length <= 5) && (c[1].length <= 4)) ? true : false : c[0].length <= 5 ? true : false;
}
console.log(check(123))
console.log(check(12345))
console.log(check(123456))
console.log(check(12345.2156))
console.log(check(123456.12))
console.log(check(12345.12345))









operators