#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
_AusweisCheck()
Func _AusweisCheck()
Local $hGUI = GUICreate("Example", 200, 40)
Local $hInput = GUICtrlCreateInput("", 5, 5, 190, 20, $ES_NUMBER)
GUISetState(@SW_SHOW, $hGUI)
Local $sLast4, $nLimit = 7
Local $sReadInput = ""
Local $sCheckInput = -1
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case Else
$sReadInput = GUICtrlRead($hInput)
If $sCheckInput <> $sReadInput Then
; If StringRegExp($sReadInput, "[^-]{4}$") Then ; <= С регулярным выражением
$sLast4 = StringRight($sReadInput,4) ; <= Без регулярного выражения
If StringLen($sLast4) = 4 And (Not StringInStr($sLast4, "-")) Then ; <= Без регулярного выражения
$sReadInput = StringTrimRight($sReadInput,1) &"-"& StringRight($sReadInput,1)
GUICtrlSetData($hInput, $sReadInput)
EndIf
If StringLen($sReadInput) > $nLimit Then
$sReadInput = StringLeft($sReadInput, $nLimit)
GUICtrlSetData($hInput, $sReadInput)
EndIf
$sCheckInput = $sReadInput
EndIf
EndSwitch
WEnd
EndFunc