358 Lotus blogs updated hourly. Who will post next? Home | Downloads | Events | Jobs | Twitter | Bookmarks | Pods | Forum | Blogs | Search | myPL | About 
 
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 Robichauxand 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




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




Created and Maintained by Yancy Lent - About - Blog Submission - Suggestions - Change Log - Blog Widget - Advertising - FAQ - Mobile Edition