HairCut
HairCut 函式用來檢查一個字串的首尾是否包含某串字,並消除之。其中,參數AllClear 用來判別是否只刪減一次;參數Front 表示是否處理字串前端;參數Back 表示是否處理字串後端。
]Function HairCut(ByVal Origin As String, ByVal Mark As String, Optional ByVal AllClear As Boolean = True, Optional ByVal Front As Boolean = True, Optional ByVal Back As Boolean = True) As String
]If ((Origin = Nothing) Or (Mark = Nothing)) Then
]Return Nothing
]End If
]Dim Has As Boolean = True
]Do Until Not Has
]Has = False
]If Not (Len(Mark) <= Len(Origin)) Then
]Return Origin
]End If
]If (Front And (Mid(Origin, 0 + 1, Len(Mark)) = Mark)) Then
]Origin = Mid(Origin, Len(Mark) - 1 + 1 + 1)
]Has = True
]End If
]If Not(Len(Mark) <= Len(Origin)) Then
]Return Origin
]End If
]If (Back And (Mid(Origin, Len(Origin) - Len(Mark) - 1 + 1 + 1) = Mark)) Then
]Origin = Mid(Origin, 0 + 1, Len(Origin) - Len(Mark))
]End If
]If Not (AllClear) Then
]Has = False
]End If
]Loop
]Return Origin
]End Function
]
]MsgBox(HairCut("testtestTESTtesttest", "test")) //將前後的"test" 都刪除。MsgBox 裡顯示"TEST"。
]MsgBox(HairCut("testtestTESTtesttest", "test", False)) //只刪減一次。MsgBox 裡顯示"testTESTtest"。
]MsgBox(HairCut("testTtestTtest", "test)) //HairCut 只會刪除前後的"test"。MsgBox 裡顯示"TtestT"。
]MsgBox(HairCut("testTESTtest", "test", , False)) //不處理字串前端,也就是前面的"test" 不刪除。MsgBox 裡顯示"testTESET"。
]MsgBox(HairCut("testTESTtest", "test", , , False)) //不處理字串後端,也就是後面的"test" 不刪除。MsgBox 裡顯示"TESTtest"。
