Har fått hjälp med följande kod för att söka ut ett sjusiffrigt artikelnummer ur en sträng: (tack Peter S, funkar finfint!)
' Reguljärt uttryck för att matcha sju siffror efter varandra
dim re
set re = new regexp
re.pattern = "\d{7}"
' Med execute() får vi ut en array av träffar
' Eftersom global-flaggan ej är satt, kan vi endast få en träff och den ligger i m(0)
dim m
set m = re.execute(strArticleName)
if m.count then
strEnumber = m(0)
end if
set re = nothing
Men jag har kommit på en sak...
Om montören skriver fel och det blir 9 siffror så är det ju inte ett giltigt nummer, som det är nu så tas ju det med eftersom villkoret är 7 siffror efter varandra. Kan man inte begraänsa till att det får vara max vara 7 sifrror i gruppen?
Skall det bli ett felmeddelande då?
Om montören vill ha fyrtio st av artikeln 401234567 eller artikelnnr 123456740 st
Vad skall hända.
Jag måste då kanske säga att viss inkontroll kan bli nödvändigt.
Eller är det bara en Informationssak?
' Reguljärt uttryck för att matcha sju siffror efter varandra
dim re
set re = new regexp
re.pattern = "\d{8,}" ' Matcha 8, eller fler, på varandra följande siffror
' Med execute() får vi ut en array av träffar
' Eftersom global-flaggan ej är satt, kan vi endast få en träff och den ligger i m(0)
dim m
set m = re.execute(strArticleName)
if m.count then
' error! 8 eller fler siffror efter varandra
else
re.pattern = "\d{7}"
set m = nothing
set m = re.execute(strArticleName)
if m.count then
strEnumber = m(0)
end if
end if
set re = nothing
Såg att det fanns några 8-siffriga artrikelnummer också hos en leverantör...(ej E-nummer)
Hur gör man koden för att få ut BÅDE 7- och 8-siffriga nummer men inga andra. Är det ett felaktigt nummer tas ju det hand om senare eftersom det inte blir en träff i databasen...