Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Fehler in regulären Ausdruck JavaScript

Frage Entwicklung PHP

Mitglied: Maik87

Maik87 (Level 2) - Jetzt verbinden

06.09.2011 um 09:32 Uhr, 2349 Aufrufe, 6 Kommentare

Hallo zusammen,

ich habe ein PHP-System von meinem Vorgänger übernommen und bin noch dabei einzusteigen.

Jetzt habe ich folgendes Problem gefunden:
Ich habe eine Textbox, in der ich ein Datum eingebe. Bis zum Datum 31.07.XXXX geht alles gut. Ab dem 01.08.XXXX wirft ein regulärer Ausdruck/JavaScript alles durcheinander.

Hier mal die Zeile:

'f=f.replace(/^\s+/, \'\').replace(/\s+$/, \'\').replace(/\s{2,}/, \' \'); try{var x=f.split(\'.\'); var d=new Date(); d.setYear(parseInt(x[2])); d.setMonth(parseInt(x[1])-1); d.setDate(parseInt(x[0])); if(isNaN(d)) return \'\'; var t=d.getDate(); if(!parseInt(t/10)) t=\'0\'+t; var m=d.getMonth()+1; if(!parseInt(m/10)) m=\'0\'+m; return t+\'.\'+m+\'.\'+d.getFullYear();}catch(e){return \'\';}'

Steigt hier jemand durch? Erkennt hier jemand den Fehler und kann mir sagen, wieso das Datum falsch ausgeworfen wird?

Ich bedanke mich schonmal.
Mitglied: nxclass
06.09.2011 um 12:56 Uhr
01.
f = f.replace(/^\s+/, '') . replace(/\s+$/, '') . replace(/\s{2,}/, ' '); 
02.
try { 
03.
  var x=f.split('.'); 
04.
  var d=new Date(); 
05.
 
06.
  d.setYear(parseInt(x[2])); 
07.
  d.setMonth(parseInt(x[1])-1); 
08.
  d.setDate(parseInt(x[0])); 
09.
  if (isNaN(d)) return ''; 
10.
 
11.
  var t = d.getDate(); 
12.
  if (!parseInt(t/10)) t = '0' + t; 
13.
 
14.
  var m = d.getMonth()+1; 
15.
  if (!parseInt(m/10)) m = '0' + m; 
16.
 
17.
  return t + '.' + m + '.' + d.getFullYear(); 
18.
} catch(e) { 
19.
  return ''; 
20.
}
... so - jetzt kann man es lesen ... Was für ein Ergebnis erwartest du denn ?

EDIT: der Bereich 'Javascript' ist bestimmt besser geeignet.
Bitte warten ..
Mitglied: Maik87
06.09.2011 um 12:59 Uhr
Danke!
Ich wusste nicht, wie das geht...
Bitte warten ..
Mitglied: nxclass
06.09.2011 um 13:13 Uhr
du kannst ja mal den
01.
try { 
02.
} catch() { 
03.
}
weglassen - dann spuckt er auch Fehlermeldungen aus.
Bitte warten ..
Mitglied: nxclass
06.09.2011 um 15:16 Uhr
das Problem ist ein Eingabefehler - das Script geht davon aus, dass du '1.8.2011' eingibst.

edit: benutze mal das:
01.
'f=f.replace(/\s/g, \'\'); try{var x=f.split(\'.\'); var d=new Date(); d.setYear(parseInt(x[2]*1)); d.setMonth(parseInt(x[1]*1)-1); d.setDate(parseInt(x[0]*1)); if(isNaN(d)) return \'\'; var t=d.getDate(); if(t<10) t=\'0\'+t; var m=d.getMonth()+1; if(m<10) m=\'0\'+m; return t+\'.\'+m+\'.\'+d.getFullYear();}catch(e){return \'\';}'
Bitte warten ..
Mitglied: Maik87
06.09.2011 um 15:47 Uhr
Danke dir schonmal!
Teste ich morgen, wenn ich wieder im Lande bin.

Aber wieso geht dann 01.07.2011? Da sind doch auch führende Nullen drin.
Bitte warten ..
Mitglied: nxclass
06.09.2011 um 16:08 Uhr
Es hat nichts mit den führenden Nullen zu tun - wenn das Date Objekt erzeugt wird erhält es intern das aktuelle Datum - setzt du nun den Tag auf 31 und der aktuelle Monat hat keinen 31. entsteht ein Fehler.

daher nochmal den Code angepasst:
01.
'f=f.replace(/\s/g, \'\'); try{var x=f.split(\'.\'); var d=new Date(x[2],x[1]-1,x[0]); if(isNaN(d)) return \'\'; var t=d.getDate(); if(!parseInt(t/10)) t=\'0\'+t; var m=d.getMonth()+1; if(!parseInt(m/10)) m=\'0\'+m; return t+\'.\'+m+\'.\'+d.getFullYear();}catch(e){return \'\';}'
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst Word Ausdruck graue Striche bei einer geschützten Ansicht (6)

Frage von blacky85 zum Thema Microsoft Office ...

Windows Server
Fehler Vertrauensstellung im AD (17)

Frage von thomas-99 zum Thema Windows Server ...

Batch & Shell
Bash sqlplus oder Bash Fehler? (7)

Frage von Marabunta zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(2)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (39)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Windows 10
Windows Store Apps ohne Windows Store installieren (10)

Frage von keefien zum Thema Windows 10 ...

Off Topic
Fachzeitschriften als E-Book oder hardcoded? (10)

Frage von KowaKowalski zum Thema Off Topic ...