मैं उन बॉडी टैग की कक्षाएं प्राप्त करने की कोशिश कर रहा हूं जिनमें संख्याएं हैं, लेकिन रेगेक्स के साथ फंस गया है

<body class='UjQWin PEfnhb s21aSi'>

var matches = document.body.className.match(/[0-9]+/);
if (matches) {
    id = matches;
    //document.getElementById("num").innerHTML = id;
  console.log(id) //expected output s21aSi 
}

क्या इस मामले में आउटपुट को s21aSi के रूप में प्राप्त करना संभव है?

2
Norman 30 अप्रैल 2020, 17:30

2 जवाब

आप .classList प्रॉपर्टी से एक ऐरे बना सकते हैं और उस ऐरे को फ़िल्टर कर सकते हैं, यहां एक उदाहरण दिया गया है:

const result = [...document.body.classList].filter(cl => /\d/.test(cl));
console.log(result);
<body class='UjQWin PEfnhb s21aSi'>
2
Titus 30 अप्रैल 2020, 17:39

आप व्हाइटस्पेस (.split(/\s+/)) से विभाजित कर सकते हैं और /\d/ (अंक मिलान) पैटर्न का उपयोग करके फ़िल्टर कर सकते हैं:

var matches = document.body.className.split(/\s+/).filter(m => /\d/.test(m));
console.log(matches)
<body class='UjQWin PEfnhb s21aSi'>
0
Wiktor Stribiżew 30 अप्रैल 2020, 17:32