我有6400多条记录正在循环播放。对于以下每一个:我通过测试地址是否与邮局使用的类似(查找地址)来检查地址是否有效。我需要仔细检查邮政编码是否已撤回匹配。
唯一的问题是邮政编码可能已经以多种不同的格式输入,例如:
OP6 6YH
OP66YH
OP6 6YH.
如果替换(strPostcode,"","")=替换(xmlAddress.selectSingleNode(" // postcode")。text,&#34 ;","")然后
我想删除字符串中的所有空格。如果我执行上面的替换,它将删除第一个示例的空格,但为第三个示例留下一个。
我知道我可以使用循环语句删除它们,但是相信这会使脚本运行得非常慢,因为它必须循环遍历6400+记录以删除空格。
还有其他方法吗?
答案 0 :(得分:4)
我没有意识到你必须添加-1才能删除所有空格
Replace(strPostcode," ","",1,-1)
答案 1 :(得分:4)
就我个人而言,我刚刚完成了这样的循环:
Dim sLast
Do
sLast = strPostcode
strPostcode = Replace(strPostcode, " ", "")
If sLast = strPostcode Then Exit Do
Loop
但是,您可能希望使用正则表达式替换:
Dim re : Set re = New RegExp
re.Global = True
re.Pattern = " +" ' Match one or more spaces
WScript.Echo re.Replace("OP6 6YH.", "")
WScript.Echo re.Replace("OP6 6YH.", "")
WScript.Echo re.Replace("O P 6 6 Y H.", "")
Set re = Nothing
后者的输出是:
D:\Development>cscript replace.vbs
OP66YH.
OP66YH.
OP66YH.
D:\Development>
答案 2 :(得分:2)
这是语法Replace(expression, find, replacewith[, start[, count[, compare]]])
默认为-1
表示计数,1
表示开始。可能是某些dll损坏了更改Replace函数的默认值。