मैंने असेंबली संस्करण प्रारूप "1.0.0.0" को मान्य करने के लिए एक रेगेक्स पैटर्न लिखा है। यह ऑनलाइन regx सत्यापनकर्ता में काम कर रहा है, लेकिन जब मैं अपने जावास्क्रिप्ट में regx लिख रहा हूं तो यह काम नहीं कर रहा है क्योंकि नीचे दिए गए कोड के साथ regx स्ट्रिंग को परिवर्तित करने के बाद अतिरिक्त/जोड़ रहे हैं। इसके लिए क्या रास्ता है?

 var regx = new RegExp("(\d+\.)(\d+\.)(\d+\.)(\d)");
 var value = regx.test(value);
-1
Utpal 28 मार्च 2018, 09:01

2 जवाब

संक्षेप में, आपको निम्नलिखित रूपों में से एक को चुनना होगा:

 var regx = new RegExp("(\\d+\\.)(\\d+\\.)(\\d+\\.)(\\d)");
 var regx = /(\d+\.)(\d+\.)(\d+\.)(\d)/;

// सिंटैक्स बनाम new RegExp के साथ रेगेक्स बनाने के बीच जावास्क्रिप्ट में अंतर है।

new RegExp('regex here') जैसे आपने किया है, रेगेक्स क्लास इनपुट के रूप में स्ट्रिंग लेता है। जब बैकस्लैश की बात आती है तो यह महत्वपूर्ण है। सामान्य जावास्क्रिप्ट स्ट्रिंग के लिए, बैकस्लैश \ वर्ण एक नियंत्रण वर्ण है। यदि आप चाहते हैं कि वह चरित्र आपकी स्ट्रिंग में दिखाई दे, तो आपको इससे बचना होगा। तो प्रत्येक बैकस्लैश के लिए जिसे आप अपने रेगेक्सपी में दिखाना चाहते हैं, आपके पास 2x जितना अधिक होना चाहिए - एक सेट ताकि यह आपकी स्ट्रिंग से गुज़र जाए। उदाहरण के लिए: console.log('hello \\ backslashes'); hello \ backslashes के रूप में प्रिंट करता है।

दूसरा विकल्प // के शॉर्टहैंड सिंटैक्स का उपयोग करना है, जब एक शाब्दिक रेगेक्स बनाते हैं, तो बैकस्लैश को सामान्य वर्ण के रूप में माना जाता है। हालाँकि! अब आपको फॉरवर्ड स्लैश से बचने की जरूरत है।

0
AnilRedshift 28 मार्च 2018, 06:25

यदि प्रारूप X.X.X.X के रूप में तय किया गया है - यानी 4 अंक - से अलग हैं, तो उपयोग करें

var regex = /^\d+\.\d+\.\d+\.\d+$/;
regex.test("1.1.1.1"); //true

हालांकि, अगर असेंबली संस्करण x.x या x.x.x, आदि हो सकता है - यानी अंकों को - और किसी भी संख्या से अलग किया जाता है, तो उपयोग करें

var regex = /^\d+(\.\d+)+$/;
regex.test("1.1.1.1"); //true
regex.test("1.1"); //true
regex.test("1.1.1"); //true

यदि संस्करण एकल अंक भी हो सकता है, तो अंतिम (\.\d+) के बाद + के बजाय * का उपयोग करें

var regex = /^\d+(\.\d+)$/;
regex.test("1.1.1.1"); //true
regex.test("1.1"); //true
regex.test("1.1.1"); //true
regex.test("1"); //true
1
gurvinder372 28 मार्च 2018, 06:15