javascript - remove - Quelle est l'utilisation de la regex backspace[\ b]?




regex online (2)

Alors que tous les autres ont raison en général (que \b est une limite de mots), \b signifie un retour arrière à l'intérieur des classes de caractères:

[\b]

Cela correspondra effectivement à un caractère de retour arrière. C'est juste un caractère de contrôle ASCII qui peut apparaître dans le texte (code ASCII 8 ou 10 en octal). Je suppose que cela est principalement utilisé pour des raisons héritées, pour ajouter des marques diacritiques (par exemple, vous pouvez faire a backspace, ´ , pour obtenir á ). Celles-ci ont été remplacées aujourd'hui par des marques combinant Unicode.

Le résultat final d’une chaîne contenant un retour arrière dépend du logiciel qui le restitue. Les consoles vont probablement toujours déplacer le curseur en arrière et écraser ce qui était là si le retour arrière est suivi de nouveaux autres caractères. Pour voir cela, lancez une console de script interactive (telle que node.js si vous voulez l’essayer en JavaScript), puis lancez

> console.log("abc\b\bdef")
adef

Notez que, si vous aviez omis def , vous obtiendrez simplement abc , car le retour arrière lui-même n’efface rien. Cela ne fait que déplacer le curseur en arrière.

D'autre part, votre navigateur peut simplement l'ignorer dans un champ de saisie. Par exemple, vérifiez un convertisseur Unicode , entrez l'entrée JavaScript abc\b\bdef dans l'entrée en bas à gauche, abc\b\bdef sur "convertir", et la sortie "Caractères" n'aura pas la bc effacée.

Soit dit en passant, le fait que \b soit un espace de retour dans les classes de caractères n’est pas propre à JavaScript, mais interprété de cette façon dans la plupart des goûts regex.

Lectures complémentaires:

[\b] correspond apparemment à un caractère de retour arrière. Je ne comprends pas comment une chaîne pourrait contenir un caractère de retour arrière. Quelqu'un peut-il me donner un exemple concret de la manière dont cela serait utilisé? Merci beaucoup.


Dans le contexte d'une expression régulière (en dehors d'une classe de caractères), \b ne signifie pas un retour arrière; cela signifie «limite de mot». Il y a beaucoup d'utilisations pour cela . Par exemple,

/\bword\b/

correspondra à some word mais pas à un someword .

Comme le fait remarquer m.butter , vous pouvez l' utiliser pour faire correspondre un caractère de retour arrière, si vous le placez dans une classe de caractère. Par exemple:

var input = "this is a \btest.";
/[\b]/.test(input); // true




regex