Dialog Eingaben mit Regulären Ausrdücken überprüfen möglich?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
MikeRo
****
Beiträge: 153
Registriert: Mi, 20.01.2010 10:16

Dialog Eingaben mit Regulären Ausrdücken überprüfen möglich?

Beitrag von MikeRo »

Hallo und wieder eine Frage zu der ich über google und Forensuche keine Lösung finde.

Ist es möglich über Reguläre Ausdrücke eingaben in Dialogfeldern zu überprüfen?
Es geht speziell um Telefonnummern, ich möchte diese in einem bestimmten Format haben.

Nämlich so: +49-1111-22222-333
Hier der passende Filterausdruck

Code: Alles auswählen

/^\+[1-9][0-9]+-[1-9][0-9]+-[1-9][0-9]+(-[0-9]+)?$/
Kann man das irgendwie realisieren?
OpenOffice 3.3 & postgresql-sdbc-driver 0.7.6b
Windows XP Professional SP3 x86
bst
*****
Beiträge: 222
Registriert: Mo, 18.01.2010 16:14
Wohnort: Ilsfeld

Re: Dialog Eingaben mit Regulären Ausrdücken überprüfen mögl

Beitrag von bst »

Hi,

dieses sollte sich entsprechend umbauen lassen.

HTH, Bernd
--

Code: Alles auswählen

Sub Main
	MsgBox reFind("abc def ghi 1234 jklm 5678 nop", "[0-9]{4}")
End Sub

Function reFind(ByVal sText As String, ByVal sPattern As String) As String
	Dim aSrcOpt As New com.sun.star.util.SearchOptions
	
	oTextSearch = CreateUnoService("com.sun.star.util.TextSearch")
    With aSrcOpt
    	.searchFlag = com.sun.star.util.SearchFlags.REG_EXTENDED
        .algorithmType = com.sun.star.util.SearchAlgorithms.REGEXP
        .searchString = sPattern
	End With
    oTextSearch.setOptions(aSrcOpt)

	aRes = oTextSearch.searchForward(sText, 0,Len(sText)-1 )
    If aRes.subRegExpressions > 0 Then
		i = aRes.subRegExpressions - 1
        reFind = Mid(sText, aRes.startOffset(i) + 1, aRes.endOffset(i) - aRes.startOffset(i))
	Endif
End Function
Antworten