Obtenir une fonctionnalité d'analyse négative en JavaScript
Les assertions d'analyse négative permettent de faire correspondre une chaîne qui ne commence pas par un ensemble de caractères spécifique. Malgré le manque de prise en charge explicite des lookbehinds négatifs dans JavaScript, il existe des alternatives viables.
À partir de 2018, les assertions Lookbehind ont été incorporées dans la spécification ECMAScript :
// Positive lookbehind: (?<=...) // Negative lookbehind: (?<!...)
Pre -Approche 2018
Alternativement, si des regards négatifs sont indisponible, envisagez l'approche suivante :
Pour exemple :
const reverse = (string) => { return string.split('').reverse().join(''); }; const test = (inputStrings, reversedRegex) => { inputStrings.map(reverse).forEach((reversedString, idx) => { const match = reversedRegex.test(reversedString); console.log( inputStrings[idx], match, 'token:', match ? reverse(reversedRegex.exec(reversedString)[0]) : 'Ø' ); }); };
Exemple 1 : Pour faire correspondre "m" dans "jim" ou "m", mais pas dans "jam" :
test(['jim', 'm', 'jam'], /m(?!([abcdefg]))/);
Sortie :
jim true token: m m true token: m jam false token: Ø
Exemple 2 : Pour faire correspondre "max-height" mais pas "line-height" :
test(['max-height', 'line-height'], /thgieh(?!(-enil))/);
Sortie :
max-height true token: height line-height false token: Ø
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!