var pattern = /^0+$/;
Je pense ceci:Comment lisez-vous cette expression régulière JavaScript?
« Jetez un oeil à la fois le début et la fin de la chaîne, et s'il y a un modèle d'un ou plusieurs zéros au début et à la fin, puis revenir ce modèle "
Je suis sûr que ce mal, cependant, parce que quand je lance l'expression avec cette chaîne:
var string = "0000009000000";
Il arrive null
.
Alors qu'est-ce que ça veut vraiment dire? Et pendant que je demande, quoi/comment JavaScript considère-t-il le début, le milieu et la fin d'une chaîne?
MISE À JOUR # 1: Merci pour les réponses! Je pense que je comprends cela maintenant. Ma confusion provenait du fait que je visualisais la chaîne comme ayant un début, un milieu et une fin. Comme ceci:
[à partir] [milieu] [fin]
En d'autres termes, pour la chaîne donnée ci-dessus, les expressions suivantes fonctionnent comme je les attends à:
/^0+/;
retours "000000" (un motif d'un ou plusieurs zéros au début de la chaîne)
et
/0+$/
; retours « 000000 » (un modèle d'un ou plusieurs zéros à la fin de la chaîne)
MISE À JOUR # 2: Je mis voté toutes les réponses à ce point, parce qu'ils sont tous utiles, et je compilé les réponses dans un grand grand:
Vu le code JavaScript suivant:
var string = "0000009000000";
var regExp = /^0+$/;
alert(regExp.exec(string));
Il se lit, en partie, comme ceci:
« Si le caractère exact (s) suivi du^modificateur et précédé du modificateur $ dans l'expression régulière ne sont pas placés SIMULTANÉMENT dans la ou les première (s) position (s) de la chaîne ET la (les) dernière (s) position (s) de la chaîne (c.-à-d. Sinon, renvoyez le (s) caractère (s). "
En d'autres termes, supposons que la chaîne donnée soit six zéros" 000000 ", ce qui entraîne une correspondance car le même groupe de caractères" 0 "est placé dans les deux. premières positions (1er 2e 3e 4e 5e 6e) et les dernières positions (1er 2e 3e 4e 5e 6e) de la chaîne.
Cependant, dans la chaîne donnée d'origine, il y a six zéros, suivi d'un neuf, suivi de six zéros ("0000009000000") Maintenant, les six zéros dans les premières positions de la chaîne (1er, 2ème, 3ème, 4ème, 5ème, 6ème) ne sont pas exactement les mêmes six zéros assis dans les dernières positions de la chaîne (8ème, 9ème, 10ème, 11ème, 12ème, 13ème).est renvoyé.
Re: mise à jour 2. Manière de trop réfléchir. L'expression dit simplement "correspondre au début de la chaîne, suivi de 1 ou plusieurs 0, suivi de la fin de la chaîne". Ne pensez pas à^et $ en tant qu'emplacements, mais en tant qu'appariants pour le caractère de début (inexistant) et le terminateur. – billjamesdev
Peut-être que ... mais en posant cette question, je me suis rendu compte qu'il ne suffisait pas de connaître la définition - j'ai besoin de «passer sous le capot» et d'apprendre la RAISON pour la définition - c'est l'algorithme que je cherche! :) –