मेरे पास एक सी # कोड है जो रेगेक्स आधार पर झूठी संख्या के लिए जांच करता है:

public bool falseNumber(string num)
    {
        try
        {
            num = num.Replace("-", "");
            string re = @"(?x)
            ^
            # fail if...
            (?!
                # repeating numbers
                (\d) \1+ $
                |
                # sequential ascending
                (?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){5} \d $
                |
                # sequential descending
                (?:0(?=9)|1(?=0)|2(?=1)|3(?=2)|4(?=3)|5(?=4)|6(?=5)|7(?=6)|8(?=7)|9(?=8)){5} \d $
            )
            # match any other combinations of 6 digits
            \d+
            $
        ";
            return Regex.IsMatch(num, re);
        }
        catch (Exception y) { return true; }
    }

मुझे इस कोड को JS में बदलने की आवश्यकता है, इसलिए मैंने लिखा है:

const falseNumber = (num) =>
{
  num = num.replaceAll("-", "");
  let re = /(?x)^(?!(\d)\1+$|(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){5}\d$|(?:0(?=9)|1(?=0)|2(?=1)|3(?=2)|4(?=3)|5(?=4)|6(?=5)|7(?=6)|8(?=7)|9(?=8)){5}\d$)\d+$/
  return re.test(num);
}

लेकिन यह मुझे त्रुटि देता है:

VM46:5 ध्यान में न आया सिंटैक्स त्रुटि: अमान्य रेगुलर एक्सप्रेशन: /((?x)^(?!(\d) \1+ $|(?:0(?=1)|1(?=2)|2(?= 3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0 )){5} \d $|(?:0(?=9)|1(?=0)|2(?=1)|3(?=2)|4(?=3)|5(? =4)|6(?=5)|7(?=6)|8(?=7)|9(?=8)){5} \d $)\d+$)/: falseNumber पर अमान्य समूह ( :5:12) पर :1:1

किसी भी मदद को बहुत सराहा जाएगा।

धन्यवाद।

const falseNumber = (num) =>
{
  num = num.replaceAll("-", "");
  let re = /(?x)^(?!(\d)\1+$|(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){5}\d$|(?:0(?=9)|1(?=0)|2(?=1)|3(?=2)|4(?=3)|5(?=4)|6(?=5)|7(?=6)|8(?=7)|9(?=8)){5}\d$)\d+$/
  return re.test(num);
}


console.log(falseNumber('33-3333333-33'));
1
Ahsan Ali 25 पद 2021, 10:55

1 उत्तर

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

x संशोधक जेएस में नहीं बनाया गया है इसलिए आपको एक त्रुटि मिलती है। और आपके मामले में, आपको x संशोधक का उपयोग करने की आवश्यकता नहीं है क्योंकि आप टिप्पणियों का उपयोग नहीं करते हैं या जेएस में आपकी रेगेक्स अभिव्यक्ति में कोई सफेद जगह नहीं है।

x संशोधक परिभाषा:

यह ध्वज इंजन को सभी व्हाइटस्पेस को अनदेखा करने और रेगेक्स में टिप्पणियों की अनुमति देने के लिए कहता है; वर्बोज़ भी कहा जाता है। टिप्पणियाँ एक प्रारंभिक "#" -चरित्र द्वारा इंगित की जाती हैं। यदि आपको अपने रेगेक्स में स्पेस कैरेक्टर शामिल करने की आवश्यकता है, तो इसे अब '\' से बच जाना चाहिए।

const falseNumber = (num) =>
{
  num = num.replaceAll("-", "");
  let re = /^(?!(\d)\1+$|(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)|9(?=0)){5}\d$|(?:0(?=9)|1(?=0)|2(?=1)|3(?=2)|4(?=3)|5(?=4)|6(?=5)|7(?=6)|8(?=7)|9(?=8)){5}\d$)\d+$/
  return re.test(num);
}


console.log(falseNumber('33-3333333-33'));
1
Burhan Savci 25 पद 2021, 13:08