Maison >développement back-end >tutoriel php >Discutez en détail de l'impact de lastIndex sur les résultats réguliers

Discutez en détail de l'impact de lastIndex sur les résultats réguliers

小云云
小云云original
2017-12-06 13:30:531636parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn