Quel est le besoin de signe caret (^) et dollar ($) dans l'expression régulière dans JS?

J'ai récemment lu sur les expressions régulières de Java Script, mais je me suis confondue.
Mon auteur dit qu'il faut inclure le signe du carnet ( ^ ) et du dollar ( $ ) au début et à la fin de toutes les déclarations d'expressions régulières? Pourquoi cela est-il nécessaire en fait? Quel est son but?

Corrigez-moi si je me trompe!

Javascript RegExp () vous permet de spécifier un mode multi-lignes (m) qui modifie le comportement de ^ et $ .

^ Représente le début de la ligne actuelle en mode multi-lignes , sinon le début de la chaîne

$ Représente la fin de la ligne actuelle en mode multi-lignes , sinon la fin de la chaîne

Par exemple: cela vous permet de faire correspondre quelque chose comme des points-virgules à la fin d'une ligne où la ligne suivante commence par "var" /;$\n\s*var/m

Fast regexen a également besoin d'un point d'ancrage, quelque part pour démarrer, il est recherché quelque part dans la chaîne. Ces personnages racontent au moteur Regex où commencer à regarder et réduisent généralement le nombre de backtracks, ce qui rend votre Regex beaucoup, beaucoup plus rapide dans de nombreux cas.

REMARQUE: cette connaissance provient du Javascript haute performance de Nicolas Zakas

Conclusion: Vous devez les utiliser!

^ Représente le début de la chaîne d'entrée.

$ Représente la fin.

Vous n'avez pas vraiment à les utiliser au début et à la fin. Vous pouvez les utiliser n'importe où =) Regex est amusant (et confus). Ils ne représentent pas un personnage. Ils représentent le début et la fin.

C'est un très bon site

Ils correspondent au début de la chaîne ( ^ ) et à la fin de la chaîne ('$').

Vous devez les utiliser lors de l'appariement des chaînes au début ou à la fin de la chaîne. Je ne dirais pas que vous devez les utiliser, cependant.

^ Ancre le début du RE au début de la chaîne de test, et $ ancre la fin du RE à la fin de la chaîne de test. Si c'est ce que vous voulez, allez-y! Cependant, si vous utilisez des RE du formulaire ^.*theRealRE.*$ Vous voudrez peut-être envisager de laisser tomber les ancres et d'utiliser simplement le noyau du RE seul.

Certaines langues obligent les RE à être ancrés aux deux extrémités par défaut.

J'ai testé ceux-ci.
1. / ^ a / matches abb, ab mais pas ba, bab, bba.
2. / a / matches abb, ab et ba, bab, bba.

Je pense que / ^ a / correspond à de telles chaînes en commençant par a.
/ A / correspond à ces chaînes contient a.

Semblable à / ^ a /, / a $ / matches ba, a, mais pas ab, bab.

Consultez http://www.regular-expressions.info/anchors.html .

Si vous notifiez une phrase incorrecte (ou étrange) ci-dessus ou ceci, je vous remercierai.