Tja alla. Vad vill du matcha mot? Mm precis det du säger, men hur escapar jag de, har kollat på MSDN och är lite osäker på hur man gör Så som du gör nu ger bara träffar om strängen bara innehåller ogilliga tecken. Trodde att jag fixade det men icke. Ok, ser ju fint ut men jag skulle uppskatta om du kunde säga vad som är fel med min funktion, så att jag lär mig av misstaget, tänker jag fel i funktionen eller ? För mig verkar det som att det borde funka. Vart skär det sig liksom i funktionen? Variablen är lite galet tilldelad den har jag ändrat men ananrs förstår jag inte vad jag gör för fel, då jag inte heller får några errors, samt att min kunskap inom VBScript inte är så stor direkt (vilket säkert märks) * Du hadde \ i början och slutet av dit regular ExpressionRegular Expression +syntax problem.
Har problem med följande regular expression i ASP + VBScript
regEx.Pattern ="\^[^<>`~!/@\#}$%:;)(_^{&*=|'+]+$\"
Jag får följande error när jag kör scriptet:
Feltyp:
Körningsfel i Microsoft VBScript (0x800A1399)
Syntaxfel i reguljärt uttryck
Är det någon som kan se någon fel i syntaxen, är inte så insatt i VBScript så jag vet inte.
Tack på förhand.Sv: Regular Expression +syntax problem.
Jag tolkar det som att du vill ha en sträng som inte är tomm och innehåller inte något av följande tecken:
<info>^<>`~!/@\#}$%:;)(_^{&*=|'+</info>
Då några av dem har funktion i regular expressions så antar jag att problemet är att du inte "escapat" dem.Sv:Regular Expression +syntax problem.
ska man ha t.ex så här
^<>`~!/@\#}$%:;)(_^{&*=\|'+
T.ex så har jag ändrat nu | till \| men ska det vara en backslash eller ska jag ha de så här istället
\|\
Eller ?Sv: Regular Expression +syntax problem.
Om man blandar giltliga med ogiltliga kommer det att gå igenom.
Om du vill att tecknen skall vara helt förbjuden så är det ett grund fel i ditt sätt att uttrycka dit regular expresion.
För att avgöra om en sträng innehåller något ogiltligt tecken kan du istället skriva:
regEx.Pattern = "[abc]"
If regEx.test(Value) Then
'Fel
Else
'OK
End If
Exempel där tecknet a, b och c är förbjudna.
Följande förbjuder ^-tecknet:
regEx.Pattern = "[\^]"
If regEx.test(Value) Then
'Fel
Else
'OK
End If
Sv:Regular Expression +syntax problem.
Ta en titt på denna funktion under. Hur än jag skriver regular expression så står det "OK" och inte
"The user wrote some invalid letter"
Tänker jag fel i koden eller, är ju ingen märkvärdig funktion i sig.
Dim chkInvalid
'chkInvalid = "$()*+[]^{}|"
chkInvalid = "abcd"
function voteTest(checkIt)
' voteTest = false
Dim regEx, regExpress
Set regEx = New RegExp
' Set pattern:
expression = "^[^\$\(\)\*\+\[\]\^\{\}\|\\\/]$"
regEx.Pattern = regExpress
' Set case sensitivity.
regEx.IgnoreCase = true
' Execute the search test.
If regEx.Test(checkIt) Then
Response.Write("The user wrote some invalid letter.")
else
Response.Write("OK")
end IF
End Function
call voteTest(chkInvalid)
Sv: Regular Expression +syntax problem.
Function ValidString(checkIt)
Dim regEx
Set regEx = New RegExp
regEx.Pattern = "^[^\$\(\)\*\+\[\]\^\{\}\|\\\/]+$"
' Execute the search test.
ValidString = regEx.test(checkIt)
End Function
Dim Data
Dim chkInvalid
Data = Array("$()*+[]^{}|", _
"abc", _
"a$")
For Each chkInvalid In Data
If ValidString(chkInvalid) Then
Response.Write """" & chkInvalid & """ is OK<br/>" & vbCrLf
Else
Response.Write """" & chkInvalid & """ contains invalid charecters.<br/>" & vbCrLf
End If
Next
Alternativt:
Function ValidString(checkIt)
Dim regEx
Set regEx = New RegExp
regEx.Pattern = "[\$\(\)\*\+\[\]\^\{\}\|\\\/]"
' Execute the search test.
ValidString = Not regEx.test(checkIt)
End Function
JAg tycker det är bättre att separera logik och presentation. Att inte göra Respons.Write i funktionen.
Sv:Regular Expression +syntax problem.
Sv:Regular Expression +syntax problem.
Sv: Regular Expression +syntax problem.
* Du hade inte escapat tecknen
* Du växlade plats på possetiv och negativ utfall mot uttrycket. Dett var nog på grund av min kod där jag istället för att testa att strängen bara innehöll giltliga tecken istället testade om strängen innehöll någit giltligt tecken:
Om alla tecken är giltliga -> Strängen är giltlig
Om det existerar et ogiltligt tecken -> Strängen är ogiltlig