Ended up looping over it
 
shame though

  _____  

From: cfaussie@googlegroups.com [mailto:[EMAIL PROTECTED] On Behalf
Of Blair McKenzie
Sent: Thursday, 23 August 2007 1:19 PM
To: cfaussie@googlegroups.com
Subject: [cfaussie] Re: Evaluating regular expression back references


The method I've described is the only only way I know to process a regex
match with a function before replacing the string. Perl and maybe php
support that kind of functionality, but in most languages it takes a
work-around. 

Blair


On 8/23/07, Steve Onnis <[EMAIL PROTECTED]> wrote: 

Blair
 
Not really what i was looking for because then i would have to escape and
other hashes in the string because if i didnt the valuate would error
 
for example if the string was  
 
my name is <span style="color:#c0c0c0">steve</span> and my email address is
[EMAIL PROTECTED] so if you want to email me go for it
 
then as soon as i evaluated the string it would error because of the un
escaped # in the font color, which would mean i would need to escape all the
hashes rendering the cfoutput # useless.
 
I need to be able to inject the new value directly into the REreplace so i
am only updating what i need
 
 
 

  _____  

From: cfaussie@googlegroups.com [mailto:[EMAIL PROTECTED] On Behalf
Of Blair McKenzie
Sent: Thursday, 23 August 2007 12:34 PM 

To: cfaussie@googlegroups.com
Subject: [cfaussie] Re: Evaluating regular expression back references



Ooooh. I think there was a thread on this a while back - if you search the
list for rereplace and eval it should come up. 

The gist is that instead of running the function (mask in your case)
directly in the rereplace, you replace the found string with an embedded
function, so the replacement string would be something like 
"##mask('[EMAIL PROTECTED]')##" 
and the result would be something like
"my name is steve and my email address is #mask('[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> ')# so if you want to email me go for it"
Then you eval the result of the rereplace. There might be a DE in there
somewhere too. I forget.

Blair


On 8/23/07, Steve Onnis <[EMAIL PROTECTED]> wrote: 

yeah but i need to only replace the email address our of a string so the
string would be fore example
 
"my name is steve and my email address is [EMAIL PROTECTED] so if you want
to email me go for it"
 
I need to be able to extract the email address which is what the regular
expression does.  The email address could be anything so i want to be able
to pass the back references from the regular expression into another
function and be able to pass that back into the REReplace so i dont have to
loop over the string looking for email addresses.  Keep in mind that the
string would be an entire HTML page.
 
Make sense?

  _____  

From: cfaussie@googlegroups.com [mailto:  <mailto:cfaussie@googlegroups.com>
[EMAIL PROTECTED] On Behalf Of Blair McKenzie
Sent: Thursday, 23 August 2007 12:14 PM 

To: cfaussie@googlegroups.com
Subject: [cfaussie] Re: Evaluating regular expression back references



You may be over thinking the problem. Replace already takes the whole
string. For that matter REReplace also takes the whole string and only
replaces the match - you could use
rereplace('[EMAIL PROTECTED]@als,'@','&123','ALL') 
and it would still return the entire string. 

And I'm pretty sure replacelist replaces every occurrance. You just have to
watch out for recursive replacements.

Blair



On 8/23/07, Steve Onnis <[EMAIL PROTECTED]> wrote: 

I need to pass the whole string into the function as i want to replace every
character in the email address with its&# value so i need to be able to
evaluate the back references to the values of the back references are passed
into the function

  _____  

From: cfaussie@googlegroups.com [mailto:  <mailto:cfaussie@googlegroups.com>
[EMAIL PROTECTED] On Behalf Of Blair McKenzie
Sent: Thursday, 23 August 2007 10:10 AM
To: cfaussie@googlegroups.com 
Subject: [cfaussie] Re: Evaluating regular expression back references



If you're only replacing symbols you don't really need regex.
For most symbols, just replace them with their &## counterpart:
replacelist(str, "@,%", "&#asc('@')#,&#asc('%')#") 

If you need to replace &s you need to make sure to do so before any other
symbols.

Blair


On 8/22/07, Steve Onnis <  <mailto:[EMAIL PROTECTED]>
[EMAIL PROTECTED]> wrote: 



What I am trying to do is replace all values in a string with the &# value 
of the character.  This is what I have so far...

-----------------------------------------------------------
<cfsavecontent variable="str">
        this is my email address <a
href="mailto: [EMAIL PROTECTED]">  <mailto:[EMAIL PROTECTED]>
[EMAIL PROTECTED]</a>
</cfsavecontent>
<cfset reg = "([[:alnum:]|\.]*)@([[:alnum:]|\.]*)" /> 
<cfscript>
        function mask() {
                var str = arguments[1];
                var i = 1;
                var length = LEN(str);
                var returnStr = "";
                for (i=1; i LTE length; i=i+1) { 
                        returnStr = returnStr & "&###ASC(MID(str, i, 1))#";
                        }
                return returnStr;
                }
</cfscript>
<cfoutput> 
#REReplaceNoCase(str, reg, mask("[EMAIL PROTECTED]"), "ALL")#
</cfoutput>
-----------------------------------------------------------

If I just return the "str" value it returns the email address but is I loop 
over the string I get "[EMAIL PROTECTED]" returned as the string.

Is there a way around this?

Steve


















--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"cfaussie" group.
To post to this group, send email to cfaussie@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cfaussie?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to