Latest 7 Posts
False Positives on Planet Lotus Fri, Sep 25th 2009 30
Validating URL and Email Addresses with regexp in Lotus Notes Thu, Sep 17th 2009 94
can’t use @ThisName in Hide-When formulas, LOTUS NOTES meta coding FAIL Fri, Sep 11th 2009 51
Expanding Group Names for Lotus Domino using LotusScript Tue, Sep 8th 2009 198
SNTT: a pseudo Computed for Display Rich Text Field in the Lotus Notes Client Thu, Sep 3rd 2009 75
Sacha Chua shares her Lotus Notes mail merge from a Microsoft Excel spreadsheet Thu, Aug 27th 2009 63
SNTT : using LotusScript to launch file attachements (EmbeddedObjects) in Lotus Notes Wed, Aug 26th 2009 194
Top
10
Expanding Group Names for Lotus Domino using LotusScript Tue, Sep 8th 2009 198
SNTT : using LotusScript to launch file attachements (EmbeddedObjects) in Lotus Notes Wed, Aug 26th 2009 194
Stopping Copy and Paste, in Lotus Notes, selectivity in Views Thu, Jul 30th 2009 106
SNTT : Validating a Notes Client Rich text field Thu, May 7th 2009 98
Validating URL and Email Addresses with regexp in Lotus Notes Thu, Sep 17th 2009 94
SnTT: Notes Document Structured Text Export for Multilingual (UTF-8) Thu, Nov 15th 2007 93
SNTT: a pseudo Computed for Display Rich Text Field in the Lotus Notes Client Thu, Sep 3rd 2009 75
Sacha Chua shares her Lotus Notes mail merge from a Microsoft Excel spreadsheet Thu, Aug 27th 2009 63
can’t use @ThisName in Hide-When formulas, LOTUS NOTES meta coding FAIL Fri, Sep 11th 2009 51
Weird Wonderful Web Links for January 21st Mon, Jan 21st 2008 32
Validating URL and Email Addresses with regexp in Lotus Notes
Ian
I needed to recreate this from scratch, and so I’m documenting this here for the next time.
Most of the credit should go to Julian Robichaux and his ls2j examples db , and in particultar the JakartaOroWrapper Library
My “invention” involves creating a isValidateURL and isValidateEmailAddress Regular Expression (or regexp ) routines that worked for me.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
Uselsx "*javacon"
Use "JakartaOroWrapper"
Function isValidateURL (Url As String) As Boolean
Dim jSession As New JavaSession
Dim oroClass As JavaClass
Dim oro As JavaObject
Dim vector As JavaObject
Dim jError As JavaError
'** get the ORO wrapper class and instantiate an instance of it
Set oroClass = jSession.GetClass("JakartaOroWrapper")
Set oro = oroClass.CreateObject
Dim pattern As String
' pattern = "^((http[s]?|ftp):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$"
' pattern = "(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?"
pattern = "^(http|https|ftp)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$"
isValidateURL = oro.matches(Url, pattern, False)
End Function
Function isValidateEmailAddress (emailAddress As String) As Boolean
Dim jSession As New JavaSession
Dim oroClass As JavaClass
Dim oro As JavaObject
Dim vector As JavaObject
Dim jError As JavaError
'** get the ORO wrapper class and instantiate an instance of it
Set oroClass = jSession.GetClass("JakartaOroWrapper")
Set oro = oroClass.CreateObject
'** here are the strings and patterns we'll play with
Dim testString As String
Dim pattern As String
'pattern = "\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b"
'RFC_2822 version
pattern = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"
isValidateEmailAddress = oro.matches(emailAddress, pattern, False)
End Function
How I used it was not very exciting but for completeness.
1 2 3 4 5 6
If Not NotesDoc.url(0) = "" Then
If Not isValidateURL ( NotesDoc.url(0)) Then
Msgbox "The URL Address ("+NotesDoc.url(0)+") doesn't look right, Please confirm it is correct.", 0 + 32, "Validation Error"
NotesUIDoc.GotoField("URL")
End If
End If
A big cautionary note about the regexp patterns I used. for both Url’s and emails addresses, I seen them very short and very very long. It’s easy to make assumtion about the validate TLD and other aspects of the strings, so test test test, and be aware.
And, of course, this is but a small piece of what you could do with regexp!!
Post from: False Positives Validating URL and Email Addresses with regexp in Lotus Notes
---------------------http://www.falsepositives.com/index.php/2009/09/17/validating-url-and-email-addresses-with-regexp-in-lotus-notes/ Sep 17, 2009 98 hits
Recent Blog Posts
30
False Positives on Planet Lotus
Fri, Sep 25th 2009 9:56a Ian Irving [read] Keywords: domino
lotus
notes
sntt
community
firefox
google
php
planet lotus
planetlotus
planetlotus.org
95
Validating URL and Email Addresses with regexp in Lotus Notes
Thu, Sep 17th 2009 9:57a Ian Irving [read] Keywords: lotus
lotusscript
notes
sntt
email
php
51 1
can’t use @ThisName in Hide-When formulas, LOTUS NOTES meta coding FAIL
Fri, Sep 11th 2009 12:31p Ian Irving [read] Keywords: dblookup
document
formula
formula language
lotus
notes
sntt
idea jam
ideajam
ideajam.net
php
properties
198
Expanding Group Names for Lotus Domino using LotusScript
Tue, Sep 8th 2009 10:09a Ian Irving [read] Keywords: acl
document
domino
lotus
lotusscript
notes
notes client
rich text
rich-text
sntt
php
server
75
SNTT: a pseudo Computed for Display Rich Text Field in the Lotus Notes Client
Thu, Sep 3rd 2009 4:16p Ian Irving [read] Keywords: document
formula
lotus
lotusscript
notes
notes client
rich text
rich-text
sntt
idea jam
ideajam
ideajam.net
php
profile
workspace
63
Sacha Chua shares her Lotus Notes mail merge from a Microsoft Excel spreadsheet
Thu, Aug 27th 2009 9:40a Ian Irving [read] Keywords: document
domino
lotus
notes
sntt
microsoft
php
Amazon.com Widgets
194
SNTT : using LotusScript to launch file attachements (EmbeddedObjects) in Lotus Notes
Wed, Aug 26th 2009 10:13p Ian Irving [read] Keywords: admin
document
domino
ibm
lotus
lotusscript
notes
notes client
R5
R8
rich text
richtext
rich-text
sntt
application
database
office
php
profile
security
workspace
20
SNTT : Don’t hard code your Selectedable Years in a Lotus Notes dialog box.
Thu, Aug 13th 2009 3:39p Ian Irving [read] Keywords: acl
dblookup
lotus
lotusscript
notes
sntt
php
16
SNTT adding http onto URL strings in Lotus Notes
Thu, Aug 13th 2009 6:20a Ian Irving [read] Keywords: document
formula
formula language
lotus
lotusscript
notes
sntt
java
php
106
Stopping Copy and Paste, in Lotus Notes, selectivity in Views
Thu, Jul 30th 2009 1:41a Ian Irving [read] Keywords: acl
agent
document
formula
formula language
lotus
lotusscript
notes
notes client
sntt
database
php