2009-12-21 4 views
1

D'accord, c'est le problème:vbscript ASP classique Runtime Regular Expression VBScript (0x800A01A8)

Je reçois ce message d'erreur lorsque je suis en train d'exécuter le script suivant

Dim rg 
Dim match 

Set rg = New RegExp 

rg.Pattern = "Mod Read Access" 
rg.Global = True 

roles = Session("Roles") 
Set match = rg.Test(roles) 

il selfs à la rg.Test (rôles) point.

Je suspecte que je puisse faire quelque chose de mal puisque je ne programme pas normalement dans asp classic. Qu'est-ce que je fais de mal?

+0

Avez-vous une erreur associée à cela, ou est-ce que cela bloque le système? Je ne me souviens pas d'un objet RegExp dans l'ancien VB/ASP, il peut donc y avoir une DLL que vous avez manquante au moment de l'exécution lorsque vous essayez d'y accéder. Juste ma conjecture sauvage, donc, il n'est pas mis en réponse ... –

Répondre

7

Au lieu de:

set et match = rg.Test (rôles)

essayer:

= correspondance rg.Test (rôles)

Set est utilisé pour l'affectation d'objets. La méthode Test renvoie un booléen et non un objet, d'où l'appel de Set échoue (l'erreur d'exécution 800a01a8 est "Object required").

+0

C'était tout. Merci! :) –

+0

+1: y suis entré environ une seconde avant que je l'ai fait;) Oh, et pour ce que sa valeur, regex est trop, utilisez la fonction InStr à la place: http://www.w3schools.com/Vbscript/func_instr.asp – Juliet

+0

Merci pour le commentaire, Juliet. Je garderai InStr à l'esprit pour la prochaine situation similaire. –

0

Le RegularExpressionObject n'a pas pu être trouvé, c'est le code d'erreur que vous recevez. Les expressions régulières avec cscript de vbscript entraîneront également des fuites de mémoire.