Lorsque vous utilisez des expressions régulières pour vérifier la même chaîne, vrai et faux sont renvoyés alternativement. En désespoir de cause, j'ai parcouru à nouveau le guide faisant autorité et j'ai découvert que le coupable s'est avéré être LastIndex. Cet article partagera avec vous l'impact de lastIndex sur les résultats réguliers.
let reg = /[\d]/g //undefined reg.test(1) //true reg.test(1) //false
lastIndex
lastIndex est expliqué comme suit dans le guide faisant autorité : il s'agit d'un Lire/écrire des entiers. Si le modèle correspondant a le modificateur g, cet attribut est stocké au début de l'index suivant dans la chaîne entière. Cet attribut sera utilisé par exec() et test(). Toujours en utilisant l'exemple ci-dessus, observez l'attribut lastIndex
let reg = /[\d]/g //有修饰符g //undefined reg.lastIndex //0 reg.test(1) //true reg.lastIndex //匹配一次后,lastIndex改变 //1 reg.test(1) //从index 1 开始匹配 //false reg.lastIndex //0 reg.test(1) //true reg.lastIndex //1
Après la première correspondance réussie en utilisant test(), lastIndex est défini sur la position finale de la correspondance, qui est 1 ; lorsque test() est exécuté pour la deuxième fois, la correspondance commence à partir de l'index 1. Si la correspondance échoue, lastIndex est réinitialisé à 0. Cela rend les résultats correspondants incompatibles avec les attentes
Solution
N'utilisez pas le modificateur g <. 🎜>
reg = /[\d]/ ///[\d]/ reg.test(1) //true reg.test(1) //true reg.lastIndex //0 reg.test(1) //true reg.lastIndex
2. Définir manuellement lastIndex = 0 après le test()
Le Le contenu ci-dessus est l'impact de lastIndex sur les résultats réguliers, j'espère que cela pourra aider tout le monde. Recommandations associées :Explication détaillée de l'utilisation de la méthode lastIndexOf() pour les tableaux et les chaînes dans JavaScript_Basic knowledge
Utilisation de indexOf et lastIndexOf Exemple introduction_javascript skills
exemple d'utilisation de js lastIndexOf()
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!