const regex = /matei 200 inheritance/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('matei 200 inheritance', 'gm')
const str = `<?php
class Device {
protected \$name;
protected \$isOn = false;
function __construct(\$name = "Unknown Device") {
\$this->name = \$name;
}
function turnOn() {
\$this->isOn = true;
echo "{\$this->name} is turned on.<br>";
}
function turnOff() {
\$this->isOn = false;
echo "{\$this->name} is turned off.<br>";
}
function getStatus() {
\$status = \$this->isOn ? "on" : "off";
echo "{\$this->name} is currently {\$status}.<br>";
}
}
class Smartphone extends Device {
private \$photos = 0;
function __construct(\$name = "Smartphone") {
parent::__construct(\$name);
}
function takePhoto() {
if (\$this->isOn) {
\$this->photos++;
echo "Photo taken! (Total: {\$this->photos} photos)<br>";
} else {
echo "Please turn on the {\$this->name} first!<br>";
}
}
function showPhotoCount() {
echo "Number of photos: {\$this->photos}<br>";
}
}
echo "<h3>Device Class:</h3>";
\$myDevice = new Device("Television");
\$myDevice->turnOn();
\$myDevice->getStatus();
\$myDevice->turnOff();
\$myDevice->getStatus();
echo "<br><h3>Smartphone Class:</h3>";
\$myPhone = new Smartphone("iPhone 15");
\$myPhone->getStatus();
\$myPhone->takePhoto();
\$myPhone->turnOn();
\$myPhone->takePhoto();
\$myPhone->takePhoto();
\$myPhone->takePhoto();
\$myPhone->showPhotoCount();
\$myPhone->turnOff();
?>
`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions