Un moyen simple d'utiliser la régularité pour déterminer si l'entrée est un nombre:
input1 = '0281234567'; input2 = '0282345678'; var reg = /^/d+$/g ;reg.test(Input1); //trueReg.Test(Input2); //FAUX
J'ai constaté que la valeur renvoyée pendant le deuxième test était incorrecte. Après avoir exclu divers facteurs d'interférence tels que les erreurs d'écriture, le non-respect de la valeur, etc., j'ai constaté que le régulier Reg ne peut être exécuté correctement que lors de la deuxième exécution de la deuxième exécution du reg. Je n'ai pas rencontré ce problème auparavant, j'ai donc recherché des informations pertinentes.
Il s'avère que ce problème est en fait causé par / g, et j'ai découvert que j'avais mal utilisé / g pour cette règle. Parce que / g représente l'appariement global, il y a un LastIndex à l'intérieur lors du jugement de la règle pour enregistrer la dernière position de match. Lorsque les appels répétés, le LastIndex continuera de correspondre, ce qui entraînera une erreur de jugement. Si vous comprenez le principe et le résolvez, il sera clair:
1. Retirez / g, et n'ajoutez pas / g la marque à volonté si / g n'est pas nécessaire
2. Avant le deuxième match, définissez manuellement LastIndex sur 0. Par exemple ci-dessus: reg.lastIndex () = 0.
Ce qui précède est la solution que le test régulier () ne peut pas être exécuté correctement en raison d'une utilisation abusive de / g dans JavaScript qui vous a été présentée. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!