const regex = new RegExp(' (?: \\A | (?<= [\\s\\xA0\\(\\[\\{]))
(?P<MODEL>
(?:
(?:
[A-ZА-Я]{4,6} (?! [\\s\\xA0] )
|
(?! (?: D-Link | D-LINK | Asus | ASUS | USB ) [\\s\\xA0] )
[A-ZА-Я]{1,4} (?: \\d [A-ZА-Я\\d]{0,4} )?
|
\\d{2,5} (?= [\\-/] )
)
(?:
(?! \\s\\d{1,2} - (?: Port | PORT ) )
[\\s\\xA0\\-/\\.]
(?:
\\d{1,4} [A-ZА-Я\\d]{0,4}
|
[A-ZА-Я]{1,4} [\\-/]? \\d{1,4} \\w{0,8}
|
[A-ZА-Я] \\w{3,6}
)
(?: [\\-/] [A-ZА-Я\\d]{1,3} )?
){1,4}
|
\\d{1,4}
(?! [\\s\\xA0] USB [\\s\\xA0] )
[\\s\\xA0]?
(?! [kкKК]? (?: [WВAА] | В[Тт] | W[Tt] | Ватт | Watts? | Амп | Amp | Ампер | Ampers? ) \\b )
[A-ZА-Я] [A-ZА-Я\\d]{0,5}
|
[A-ZА-Я]{1,4} \\d [A-ZА-Я\\d]{0,10}
)
(?:
[\\-/] \\w{1,6} (?: [\\-/] \\d{1,3} )?
|
(?: [\\s\\x0A] [A-ZА-Я\\d]{1,5} (?: [\\-/] [A-ZА-Я\\d]{1,5} ){0,2} ){1,3}
)?
(?: \\+ | [\\s\\xA0] (?: Plus | PLUS | Плюс | ПЛЮС) )?
(?: [\\s\\xA0]? \\( [A-ZА-Я\\d\\-/]{1,18} \\) )?
)
(?= \\Z | [\\s\\xA0,\\.\\)\\}\\]] | (?<= \\) ) [:;\\-/] )
', 'u')
const str = `Автомагнитола ALPINE CDE-100EUB Код товара: 1298, Производитель: ALPINE, раздел: Автомагнитолы, модель: ALPINE CDE-100EUB`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
if ((m = regex.exec(str)) !== null) {
// 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