在VBScript中删除选项卡空间

时间:2018-07-10 12:00:35

标签: vbscript

我有一个包含制表符的定界字符串,当我对字符串执行Trim时,它不起作用。对于普通空格和双空格,Trim正常工作。下面是我的代码。

Dim arrStr    
arrStr = Split("Customer|Customer Address               |Account", "|")     
If (Trim(arrStr(1)) = "First Lane") Then
    WScript.Echo "Inside If"
End If
WScript.Echo "Outside If"

我尝试使用LTrimRTrimTrim,但没有任何效果。我也尝试编写自定义方法来修剪选项卡,如下所示,但这也不起作用。请帮忙吗?

Function customTrim(str)
    Dim re
    Set re = New RegExp
    re.Pattern = "^\t*"
    re.Multiline = False
    customTrim = re.Replace(str, "")
End Function

2 个答案:

答案 0 :(得分:1)

内置函数save function save(){ $scope.ethernetStatus = { "ipAddress": $scope.ipAddress.value }; ethernetService.setStatus($scope.ethernetStatus, function(data){ if(data.status === 200){ console.log("is ok"); } }); } Trim不会删除所有空格,只是规则空格,因此它们不适用于您的情况。

您拥有的正则表达式(LTrim)只会删除前导制表符,但是您的示例数据似乎具有尾随制表符。如果要删除结尾的制表符,请将表达式更改为RTrim。但是,由于您可能想删除所有前导/后缀空格,因此建议改用^\t*。请注意,您还需要将属性\t+$设置为^\s+|\s+$,否则只会删除第一个匹配项。属性Global的默认值为True,因此您无需明确设置。

Multiline

答案 1 :(得分:0)

尝试此代码

varStr = "Customer|Customer Address                     |Account"

MsgBox CustomTrim(varStr)

Function CustomTrim(str)
  Dim re
  Set re = New RegExp
  re.Pattern = "\t+" '<~~ select one or more tabs
  re.Multiline = True
  CustomTrim = re.Replace(str, "")
End Function

您使用了不正确的正则表达式模式-您正在寻找任何以字符串/行(^)开头的选项卡。您需要在字符串中的任何位置查找一个或多个选项卡。