By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
434,668 Members | 1,477 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 434,668 IT Pros & Developers. It's quick & easy.

need help with a regular expression replace command

P: n/a
I need an asp command to strip out from a string all extra punctuation such
as apostrophe, comma, period, spaces dashes, etc etc and just leave the
letters.

Can anybody give me some ideas?

Thanks
Jul 19 '05 #1
Share this Question
Share on Google+
6 Replies


P: n/a
"Danny" wrote in message
news:pw**********************@news4.srv.hcvlny.cv. net...
:I need an asp command to strip out from a string all extra punctuation such
: as apostrophe, comma, period, spaces dashes, etc etc and just leave the
: letters.
:

Yes. It's easier to match what you want and just dump the rest. This
example returns A-Z regardless of case or in your terms, "just the letters."

<%@ Language=VBScript %>
<%
Option Explicit
Response.Buffer = True

function getAlpha(str)
dim re, match, matches, reStr
set re = New RegExp
re.Pattern = "[a-z]+"
re.IgnoreCase = True
re.Global = True
set matches = re.Execute(str)
for each match in matches
reStr = reStr & match.value
next
getAlpha = reStr
end function

Response.Write("Result: " & getAlpha("AaB5b!'C,*cD/d\Ee"))
%>

Response:
Result: AaBbCcDdEe

HTH...

--
Roland Hall
/* This information is distributed in the hope that it will be useful, but
without any warranty; without even the implied warranty of merchantability
or fitness for a particular purpose. */
Technet Script Center - http://www.microsoft.com/technet/scriptcenter/
WSH 5.6 Documentation - http://msdn.microsoft.com/downloads/list/webdev.asp
MSDN Library - http://msdn.microsoft.com/library/default.asp
Jul 19 '05 #2

P: n/a
Roland Hall wrote on 03 okt 2004 in
microsoft.public.inetserver.asp.general:
"Danny" wrote in message
news:pw**********************@news4.srv.hcvlny.cv. net...
:I need an asp command to strip out from a string all extra punctuation
:such
: as apostrophe, comma, period, spaces dashes, etc etc and just leave
: the letters.
:

Yes. It's easier to match what you want and just dump the rest. This
example returns A-Z regardless of case or in your terms, "just the
letters."


I don't think so,
the replace function is much quicker than matching and a loop:

function getAlpha(str)
dim re
set re = New RegExp
re.Pattern = "[^a-z]+"
re.IgnoreCase = True
re.Global = True
getAlpha = re.replace(str,"")
end function

Response.Write "Result: " & getAlpha("AaB5b!'C,*cD/d\Ee")
--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress,
but let us keep the discussions in the newsgroup)

Jul 19 '05 #3

P: n/a
Danny wrote:
I need an asp command to strip out from a string all extra
punctuation such as apostrophe, comma, period, spaces dashes, etc etc
and just leave the letters.


JScript:
return myString.replace(/[^a-z]/gi,"")

vbscript:
Use the Replace function and the RegExp object to do the same.

--
Dave Anderson

Unsolicited commercial email will be read at a cost of $500 per message. Use
of this email address implies consent to these terms. Please do not contact
me directly or ask me to contact you directly for assistance. If your
question is worth asking, it's worth posting.
Jul 19 '05 #4

P: n/a
I use a function for that. There might a slicker way to do it, but this is what I came up with. You can replace each puncuation mark with just an empty string "" instead of the encoding.

Function EncPunc(checkPunc)
strTmp = checkPunc
strTmp = Replace(strTmp,"'","%39")
strTmp = Replace(strTmp,"%","%25")
strTmp = Replace(strTmp,"&","%26")
strTmp = Replace(strTmp,"#","%23")
strTmp = Replace(strTmp,";","%3B")
strTmp = Replace(strTmp,"/","%2F")
strTmp = Replace(strTmp,"?","%3F")
strTmp = Replace(strTmp,":","%3A")
strTmp = Replace(strTmp,"@","%40")
strTmp = Replace(strTmp,"=","%3D")
strTmp = Replace(strTmp,"<","%3C")
strTmp = Replace(strTmp,">","%3E")
strTmp = Replace(strTmp,"""","%22")
strTmp = Replace(strTmp,"{","%7B")
strTmp = Replace(strTmp,"}","%7D")
strTmp = Replace(strTmp,"|","%7C")
strTmp = Replace(strTmp,"\\","%5C")
strTmp = Replace(strTmp,"^","%5E")
strTmp = Replace(strTmp,"~","%7E")
strTmp = Replace(strTmp,"[","%5B")
strTmp = Replace(strTmp,"]","%5D")
strTmp = Replace(strTmp,"`","%60")
EncPunc = strTmp
End Function

************************************************** ********************
Sent via Fuzzy Software @ http://www.fuzzysoftware.com/
Comprehensive, categorised, searchable collection of links to ASP & ASP.NET resources...
Jul 19 '05 #5

P: n/a
br******@hotmail.com wrote on 13 okt 2004 in
microsoft.public.inetserver.asp.general:
Function EncPunc(checkPunc)
strTmp = checkPunc
strTmp = Replace(strTmp,"'","%39")
strTmp = Replace(strTmp,"%","%25")
strTmp = Replace(strTmp,"&","%26")
strTmp = Replace(strTmp,"#","%23")

teststr = "%&#;/?:@=<>""{}|\^~[]`"

Function EncPunc(x)
EncPunc = ""
for i=1 to len(x)
t = mid(x,i,1)
if instr(teststr,t)>0 then t = "%" & asc(t)
EncPunc = EncPunc & t
next
End Function

==================================
strTmp = Replace(strTmp,"\\","%5C")


you are mistaken, this is not javascript, but vbscript

--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress,
but let us keep the discussions in the newsgroup)

Jul 19 '05 #6

P: n/a
Yes, there is a much easier wa to do HTML entity, unfortunatly as far as I
can tell regexps in VB are severely impared!!!
The easy way to do this is to match the char with a regular expresion and
then get the numeric value for the char.
In VB it would look something like
dim reg1 as RegExp
set reg1= new RegExp
reg1.global = true
reg1.pattern="([^a-zA-Z0-9\s])"
text=reg1.replace(text,"&" & Asc("$1") & ";"

Unfortunatley in VB you can not pass submatches to a funtion. Submatches
only work inside the expression.
If anyone knows how to pass submatches to a function in a VB RegExp please
let me know.
For now I just call external Perl scripts from VB

by the way, the above in Perl looks like this
$text=~s/([^a-zA-Z0-9\s])/"&".ord($1).";"/ge;

Aside from being brief, it works!!!
And if we want to check to make sure entities like $ do not get encoded we
can pass to a function that handles this
$text=~s/([^a-zA-Z0-9\s])/encodeHTMLentities($1)/ge;
"Bob Roby" wrote:
I use a function for that. There might a slicker way to do it, but this is what I came up with. You can replace each puncuation mark with just an empty string "" instead of the encoding.

Function EncPunc(checkPunc)
strTmp = checkPunc
strTmp = Replace(strTmp,"'","%39")
strTmp = Replace(strTmp,"%","%25")
strTmp = Replace(strTmp,"&","%26")
strTmp = Replace(strTmp,"#","%23")
strTmp = Replace(strTmp,";","%3B")
strTmp = Replace(strTmp,"/","%2F")
strTmp = Replace(strTmp,"?","%3F")
strTmp = Replace(strTmp,":","%3A")
strTmp = Replace(strTmp,"@","%40")
strTmp = Replace(strTmp,"=","%3D")
strTmp = Replace(strTmp,"<","%3C")
strTmp = Replace(strTmp,">","%3E")
strTmp = Replace(strTmp,"""","%22")
strTmp = Replace(strTmp,"{","%7B")
strTmp = Replace(strTmp,"}","%7D")
strTmp = Replace(strTmp,"|","%7C")
strTmp = Replace(strTmp,"\\","%5C")
strTmp = Replace(strTmp,"^","%5E")
strTmp = Replace(strTmp,"~","%7E")
strTmp = Replace(strTmp,"[","%5B")
strTmp = Replace(strTmp,"]","%5D")
strTmp = Replace(strTmp,"`","%60")
EncPunc = strTmp
End Function

************************************************** ********************
Sent via Fuzzy Software @ http://www.fuzzysoftware.com/
Comprehensive, categorised, searchable collection of links to ASP & ASP.NET resources...

"Bob Roby" wrote:
I use a function for that. There might a slicker way to do it, but this is what I came up with. You can replace each puncuation mark with just an empty string "" instead of the encoding.

Function EncPunc(checkPunc)
strTmp = checkPunc
strTmp = Replace(strTmp,"'","%39")
strTmp = Replace(strTmp,"%","%25")
strTmp = Replace(strTmp,"&","%26")
strTmp = Replace(strTmp,"#","%23")
strTmp = Replace(strTmp,";","%3B")
strTmp = Replace(strTmp,"/","%2F")
strTmp = Replace(strTmp,"?","%3F")
strTmp = Replace(strTmp,":","%3A")
strTmp = Replace(strTmp,"@","%40")
strTmp = Replace(strTmp,"=","%3D")
strTmp = Replace(strTmp,"<","%3C")
strTmp = Replace(strTmp,">","%3E")
strTmp = Replace(strTmp,"""","%22")
strTmp = Replace(strTmp,"{","%7B")
strTmp = Replace(strTmp,"}","%7D")
strTmp = Replace(strTmp,"|","%7C")
strTmp = Replace(strTmp,"\\","%5C")
strTmp = Replace(strTmp,"^","%5E")
strTmp = Replace(strTmp,"~","%7E")
strTmp = Replace(strTmp,"[","%5B")
strTmp = Replace(strTmp,"]","%5D")
strTmp = Replace(strTmp,"`","%60")
EncPunc = strTmp
End Function

************************************************** ********************
Sent via Fuzzy Software @ http://www.fuzzysoftware.com/
Comprehensive, categorised, searchable collection of links to ASP & ASP.NET resources...

Jul 22 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion.