On Mar 26, 2010, at 10:40 PM, Sivakatirswami wrote:

> anyone have an efficient script for tagging email address with links?


I have used the algorithm below several time for similar needs. The basic 
concept is as follows:

* Create a regular expression matching what you are looking for
* Loop over the field finding matches and 
* Turning them into links

I usually do the algorithm below in a field and just set the textStyle to 
"link" and change the linkText of the chunk. I've modified it for you to accept 
input text and create a new output text string with the HTML tags inserted. I 
don't know if that's what you really want, but it should give you an idea of 
how to proceed regardless. Note, since I'm modifying code from my library, it 
is untested and from memory, but should be close.

function linkEmails pText
        local tPos
        local tStart
        local tEnd
        local tOutput
        local tRegex
        local tEmail

        put "\b([a-z0-9._%...@[a-z0-9.-]+\.[a-z]{2,4})\b" into tRegex
        put 1 into tPos

        -- loop over the entire input text
        repeat until matchChunk(char tPos to -1 of pText, tRegex, tStart, tEnd) 
is false
                add tPos to tStart
                add tPos to tEnd

                -- first dump everything up to the email address and extract 
the address
                put char tPos to tStart - 1 ater tOutput
                put char tStart - 1 to tEnd -1 of pText into tEmail

                -- now put the email link
                put "<a href=" & quote & "mailto:"; & tEmail & quote & ">" & 
tEmail & "</a>" after tOutput

                -- advance and continue
                put tEnd into tPos
        end repeat

        -- dump what's left over
        put char tPos to -1 of pText into tOutput

        return tOutput
end linkEmails

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to